Sponsored Content
Full Discussion: set sub-string as variable
Top Forums UNIX for Dummies Questions & Answers set sub-string as variable Post 302437049 by tedy2808 on Tuesday 13th of July 2010 10:36:58 PM
Old 07-13-2010
set sub-string as variable

Hi all,

i really new in linux and just heard about shell scripting couple days ago..

i did exercises on linux in online tutorial but as a beginner, i'm facing problems in developing the script as there are errors that sometimes i dun have any idea on how to solve it.What i'm doing now is not homework, but i had been assigned to develop some system in linux.

i appreciate if there are people that willing to guide me on this matter.

my problem currently is on sub-string matter, where i need to read the line from file/directory and based on the line retrieved,i need to seperate the information in the line and assign as variable..

below are my script:

(the script reside in test.sh)

Code:
!/bin/sh
dir=/home/user/input/test.log   #(this is the input file)

msg=`tail -1 $dir`   
#(it will take only the last line as log file will be updated every day)

echo "$msg"

thus, the output something like this:

file_name successfully ran on Mon Jul 12 23:15:00 SST 2009.


now, what i need to do is to extract certain information from that line which is the name, date, time and the status

the desired output is:

name date time status
file_name Mon Jul 12 23:15:00 success

so,my next step is to identify the sub-string and assigned as variable first in order to parse the info and output it.

thus,my script is:

Code:
!/bin/sh
dir=/home/user/input/test.log   #(this is the input file)

msg=`tail -1 $dir`   
#(it will take only the last line as log file will be updated every day)

sub= $msg
name=${msg:0:8}

echo "$msg"
echo "name"


but i received error message which is

Code:
./test.sh[10]: name=${msg:0:8}: The specified substitution is not valid for this command.

guide me please..

Last edited by pludi; 07-14-2010 at 03:55 AM.. Reason: code tags, please...
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Export command giving Variable Name vs the Value set for the Variable

I'm having an issue when I export within my program. I'm getting the variable name, not the variable value. I have a configuration file (config.txt) that has the values of the variables set as so: set -a export ARCHIVEPOSourceDir="/interfaces/po/log /interfaces/po/data" export... (2 Replies)
Discussion started by: ParNone
2 Replies

2. Shell Programming and Scripting

set variable with another variable? c shell

okay, this shouldn't be difficult but I can't figure it out. How can I set a variable with another variable. I have the following: foreach pe ($dir $sp) set tpe = `echo $pe | grep M` if ($tpe == M) then set ${$pe} = M <--- This doesn't work else endif end In this case what... (2 Replies)
Discussion started by: wxornot
2 Replies

3. Shell Programming and Scripting

how to find a particular string from a set of string output

Hi , I have a line by line output as follows,for example output of ls sample1 sample2 sample i need to check if this output contains the exact string sample.If i use grep , it will find out all strings that contain sample as a part of their word.I dont want to do a pattern matching... (11 Replies)
Discussion started by: padmisri
11 Replies

4. Shell Programming and Scripting

Howto set string variable in TCL?

Anyone knows how to set variable in TCL ? let say i have a password variable and it will have different values. set variable and variable has different values like: xxxx yyyy zzzz (0 Replies)
Discussion started by: linuxgeek
0 Replies

5. Shell Programming and Scripting

BASH - set specific user variable via string operators

Apologies for the utter triviality of this question, but we all have to start somewhere! I've also tried searching but this question is pretty vague so I didn't (a) really know what to search for or (b) get many relevant hits to what I did search for. Anyway, I'm in the process of self-teaching... (1 Reply)
Discussion started by: u5j84
1 Replies

6. HP-UX

What is the use of command set -- and set - variable?

Hi, I am using hp unix i want to know the use of the following commands set -- set - variable thanks (4 Replies)
Discussion started by: gomathi
4 Replies

7. Shell Programming and Scripting

replace (sed?) a string in file with multiple lines (string) from variable

Can someone tell me how I can do this? e.g: a=$(echo -e wert trewt ertert ertert ertert erttert erterte rterter tertertert ert) How do i replace the STRING with $a? I try this: sed -i 's/STRING/'"$a"'/g' filename.ext but this don' t work (2 Replies)
Discussion started by: jforce
2 Replies

8. UNIX for Dummies Questions & Answers

Comparing a String variable with a string literal in a Debian shell script

Hi All, I am trying to to compare a string variable with a string literal inside a loop but keep getting the ./testifstructure.sh: line 6: #!/bin/sh BOOK_LIST="BOOK1 BOOK2" for BOOK in ${BOOK_LIST} do if then echo '1' else echo '2' fi done Please use next... (1 Reply)
Discussion started by: daveu7
1 Replies

9. Shell Programming and Scripting

If a string variable value exists in a set of values

Can some one please help me with the syntax in shell script for the below : if $var1 exists in ('val1','val2','val3') I want to execute a set of commands if the value of var1 variable matches any one of the given string values. Please let me know if there are any other option to go by. ... (10 Replies)
Discussion started by: Pandee
10 Replies

10. UNIX for Beginners Questions & Answers

Check if string variable is a subset of another string variable

Below is my ksh shell script where I need to check if variable fileprops is a subset of $1 argument. echo "FILE PROPERTY: $fileprops" echo "PARAMETER3: $1" if ; then echo "We are Good. $line FILE is found to be INTACT !! " else echo... (2 Replies)
Discussion started by: mohtashims
2 Replies
Test::Script::Run(3pm)					User Contributed Perl Documentation				    Test::Script::Run(3pm)

NAME
Test::Script::Run - test the script with run SYNOPSIS
use Test::Script::Run; # customized names of bin dirs, default is qw/bin sbin script ./; @Test::Script::Run::BIN_DIRS = qw/bin/; run_ok( 'app_name', [ app's args ], 'you_app runs ok' ); my ( $return, $stdout, $stderr ) = run_script( 'app_name', [ app's args ] ); run_output_matches( 'app_name', [app's args], [ 'out line 1', 'out line 2' ], [ 'err line 1', 'err line 2' ], 'run_output_matches' ); run_output_matches_unordered( 'app_name', [ app's args ], [ 'out line 2', 'out line 1' ], [ 'err line 2', 'err line 1' ], 'run_output_matches_unordered' ); DESCRIPTION
This module exports some subs to help test and run scripts in your dist's bin/ directory, if the script path is not absolute. Nearly all the essential code is stolen from Prophet::Test, we think subs like those should live below "Test::" namespace, that's why we packed them and created this module. FUNCTIONS
run_script($script, $args, $stdout, $stderr) Runs the script $script as a perl script, setting the @INC to the same as our caller. $script is the name of the script to be run (such as 'prophet'). $args is a reference to an array of arguments to pass to the script. $stdout and $stderr are both optional; if passed in, they will be passed to IPC::Run3's run3 subroutineA as its $stdout and $stderr args. Otherwise, this subroutine will create scalar references to pass to run3 instead (which are treated as strings for STDOUT/STDERR to be written to). Returns run3's return value and, if no $stdout and $stderr were passed in, the STDOUT and STDERR of the script that was run. run_ok($script, $args, $msg) Runs the script, checking that it didn't error out. $script is the name of the script to be run (e.g. 'prophet'). $args is an optional reference to an array of arguments to pass to the script when it is run. $msg is an optional message to print with the test. If $args is not specified, you can still pass in a $msg. Returns nothing of interest. run_not_ok($script, $args, $msg) opposite of run_ok get_perl_cmd($script, @ARGS) Returns a list suitable for passing to "system", "exec", etc. If you pass $script then we will search upwards for it in @BIN_DIRS is_script_output($scriptname @args, @stdout_match, @stderr_match, $msg) Runs $scriptname, checking to see that its output matches. $args is an array reference of args to pass to the script. $stdout_match and $stderr_match are references to arrays of expected lines. $msg is a string message to display with the test. $stderr_match and $msg are optional. (As is $stdout_match if for some reason you expect your script to have no output at all. But that would be silly, wouldn't it?) Allows regex matches as well as string equality (lines in $stdout_match and $stderr_match may be Regexp objects). run_output_matches($script, $args, $exp_stdout, $exp_stderr, $msg) A wrapper around is_script_output that also checks to make sure the test runs without throwing an exception. run_output_matches_unordered($script, $args, $exp_stdout, $exp_stderr, $msg) This subroutine has exactly the same functionality as run_output_matches, but doesn't impose a line ordering when comparing the expected and received outputs. last_script_stdout return last script's stdout last_script_stderr return last script's stderr last_script_exit_code return last script's exit code DEPENDENCIES
Test::More, Test::Exception, IPC::Run3, File::Basename, File::Spec BUGS AND LIMITATIONS
No bugs have been reported. AUTHOR
sunnavy "<sunnavy@bestpractical.com>" LICENCE AND COPYRIGHT
Copyright 2009 Best Practical Solutions. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.10.1 2011-01-07 Test::Script::Run(3pm)
All times are GMT -4. The time now is 04:12 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy