Not able to store command inside a shell variable, and run the variable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Not able to store command inside a shell variable, and run the variable
# 1  
Old 11-19-2010
Not able to store command inside a shell variable, and run the variable

Hi,

I am trying to do the following thing

Code:
var='date'
 
$var

Above command substitutes date for and in turn runs the date command and i am getting the todays date value.

I am trying to do the same thing as following, but facing some problems,

Code:
unique_host_pro="sed -e ' /#/d' \$configFile | awk -v appcode=\"$appcode\" -F\"\$config_del\" '{ if (\$1 == appcode ) print \$0 }' | awk -v unique_host=\"\$unique_host\" -F\"\$config_del\" '{ if ( \$2 == unique_host ) print \$0 }'"

I have stored the sed command in unique_host_pro variable and going to use the variable in multiple places of my script, so i dont have to use the command in multiple places, and also trying to avoid updates to the command in multiple places.

once assigning the above value, i am trying to run the command using

Code:
$unique_host_pro

Getting the following exception

Code:
checkProcess.sh: line 97: sed -e ' /#/d' $configFile | awk -v appcode="$appcode" -F"$config_del" '{ if ($1 == appcode ) print $0 }' | awk -v unique_host="$unique_host" -F"$config_del" '{ if ( $2 == unique_host ) print $0 }': No such file or directory


Please let me know how to correct this error also let me know if the approach is correct.

Last edited by radoulov; 11-19-2010 at 06:07 AM.. Reason: Use code tags, please!
# 2  
Old 11-19-2010
In order to reuse an existing code you should use a shell function.
You get the above error because the shell tries to execute the saved pipeline as a single command.
# 3  
Old 11-19-2010
Thanks, So do you mean that pipline command should not be stored and reused ?

My code is like following

Code:
function checkProcessIdeHosts()
{
 unique_host=$1
 
 no_unique_hosts_prc=`sed -e ' /#/d' $configFile | awk -v appcode="$appcode" -F"$config_del" '{ if ($1 == appcode ) print $0 }' | awk -v unique_host="$unique_host" -F"$config_del" '{ if ( $2 == unique_host ) print $0 }'|wc -l`
 if [ $no_unique_hosts_prc -eq 1 ]
 then 
  checkProcessModule `sed -e ' /#/d' $configFile | awk -v appcode="$appcode" -F"$config_del" '{ if ($1 == appcode ) print $0 }'| awk -v unique_host="$unique_host" -F"$config_del" '{ if ( $2 == unique_host ) print $0 }'`
 else
  for proc_det in `sed -e ' /#/d' $configFile | awk -v appcode="$appcode" -F"$config_del" '{ if ($1 == appcode ) print $0 }'| awk -v unique_host="$unique_host" -F"$config_del" '{ if ( $2 == unique_host ) print $0 }'`
  do
          checkProcessModule $proc_det 
   sleep 5
  done
 fi
}

I am using the command "sed -e ' /#/d' $configFile | awk -v appcode="$appcode" -F"$config_del" '{ if ($1 == appcode ) print $0 }' | awk -v unique_host="$unique_host" -F"$config_del" '{ if ( $2 == unique_host ) print $0 }'" in multiple places, in case of updates to the command then I have to make the same changes in multiple places, i want to get rid of that, i can not use functions for this kind of substitutions

Last edited by pludi; 11-19-2010 at 06:37 AM.. Reason: code tags, please...
# 4  
Old 11-19-2010
Quote:
Originally Posted by gvinayagam
Thanks, So do you mean that pipline command should not be stored and reused ?

[...]
No, I'm just saying that you need to encapsulate the repeating code in another function Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Python - store output of command to a variable

I am trying to store output of python command in variable. Could you please help how I can do that ? For example I am executing the following command - "CentOS" in server_desc The output would be True or False I would like to store the output in a variable say outPut and use condition... (4 Replies)
Discussion started by: atanubanerji
4 Replies

2. Shell Programming and Scripting

Store command inside variable

Is it possible to store a command inside a variable? i want this piece to be stored inside a variable, so i can use it later in a different command $u | cut -d " " -f 2 var="$u | cut -d " " -f 2" eval $var I tried to use eval but I receive this error: -f 2: command not found ... (5 Replies)
Discussion started by: velos
5 Replies

3. Shell Programming and Scripting

How to store the return value of a command into a variable?

I want to store the return value of grep -c string filename into a variable, say count. How do I do that? For example if grep -c "string" "filename" shows 0 on executing it in the sh shell then I want to store this 0 in a variable. Is it possible? :D (5 Replies)
Discussion started by: navienavnav
5 Replies

4. Shell Programming and Scripting

store last command exit status in variable in shell script

Hello All My req is to store the exit status of a command in shell variable I want to check whether the file has header or not The header will contain the string DATA_ACQ_CYC_CNTL_ID So I am running the command head -1 $i | grep DATA_ACQ_CYC_CNTL_ID Now I have to check if... (6 Replies)
Discussion started by: Pratik4891
6 Replies

5. Shell Programming and Scripting

To store the file name o/p from find command in to a variable

Hi How to use a variable to store the filename of a file which was found by the 'find' command. can this be practical-->var = find . -name "filename.dat" Please help.. (1 Reply)
Discussion started by: ayyappaas
1 Replies

6. Shell Programming and Scripting

Using variable to store of find command

Hello Experts I am newbie to unix and writing one script to make archive files Problme i am facing is : I have used find command to find the type of files and I am storing find command results in a variable. When I echo the variable I can see that path is printed properly but when i am... (5 Replies)
Discussion started by: mitsyjohn
5 Replies

7. Shell Programming and Scripting

Store highest filename from ls command to a variable

I am sure it has been answered in some form or the other in this forum but trust me I have spent last couple of hours looking for an answer but can't find it. I want to do a very simple operation within my script. Let's say I have 4 files with the names file1.log, file2.log, file3.log and... (6 Replies)
Discussion started by: sssccc
6 Replies

8. Shell Programming and Scripting

how to store grep command in a Variable

I have a variable A echo $A 5060 I am exporting the value X,Y,Z and it id fetching right thing and When I run C=`${X} -l ${Y} ${Z} "trap '' INT;. ~/.profile >/dev/null 2>/dev/null; netstat -na | grep \$A`" here it is going to same directory and also running netstat -na | grep 5060 ... (4 Replies)
Discussion started by: madhusmita
4 Replies

9. UNIX for Dummies Questions & Answers

How to Store command O/P to a variable...

Hi all.. I got a problem.. Its easy to redirect o/p to a file.. But Is it possible to redirect the O/P to a variable? For example: I've a command in my script: string1=cut -d ':' -f2 file.txt When I do: echo $string1 The value is empty... Pls suggest me how to store the value... (7 Replies)
Discussion started by: smartbuddy
7 Replies

10. Shell Programming and Scripting

Grep results to store in a shell variable

I have the results of a grep with -n store in a shell variable ie VAR=`grep -n -e 'PATTERN' file` How ever I am missing the line breaks in the variable , How do I store the resualts of grep with many lines in to a variables. I want the varable should be the sawmway as we do the grep grep... (3 Replies)
Discussion started by: jojan
3 Replies
Login or Register to Ask a Question