xx=`date +"%a %b %d"`;rsh xxx grep "^$XX" zzz ?


 
Thread Tools Search this Thread
Operating Systems AIX xx=`date +"%a %b %d"`;rsh xxx grep "^$XX" zzz ?
# 1  
Old 06-11-2009
xx=`date +"%a %b %d"`;rsh xxx grep "^$XX" zzz ?

AIX 4.2

I am trying to do an rsh grep to search for date records inside server logs by doing this :

xx=`date +"%a %b %d"`
rsh xxx grep "^$XX" zzz

gives :
grep: 0652-033 Cannot open Jun.
grep: 0652-033 Cannot open 11.


But if I do :
xx=`date +"%a %b %d"`
grep "^$XX" zzz

it works !

It is as if when used with something like the 'rsh', the double quotes are removed.

Any way around this ?
# 2  
Old 06-13-2009
The reason for your problem is the command evaluation process in ksh. You might want to read what i have written for a different (but related) problem here.

Your commandline is first interpreted locally and the content of the variable is filled in and protected by the double quotes. Now a remote connection is opened and the rest of the line is passed as command line to the remote shell interpreter. Guess what? At the remote site the commandline is getting interpreted *again* and now the double quotes are not there any more because they are already "used". The command will look like this (first line=local, second line=remote):

Code:
rsh host grep ^Sat Jun 13 06:19:07 CEST 2009 file
              --------one argument-----
grep ^Sat Jun 13 06:19:07 CEST 2009 file

And of course "grep" will try to find "^Sat" is a file called "Jun", which leads to the error.

The solution is to protect your double quotes by escaping them:

Code:
rsh host grep "\"$xx\"" file

I hope this helps.

bakunin
# 3  
Old 06-13-2009
Quote:
Originally Posted by bakunin
The reason for your problem is the command evaluation process in ksh. You might want to read what i have written for a different (but related) problem here.

Your commandline is first interpreted locally and the content of the variable is filled in and protected by the double quotes. Now a remote connection is opened and the rest of the line is passed as command line to the remote shell interpreter. Guess what? At the remote site the commandline is getting interpreted *again* and now the double quotes are not there any more because they are already "used". The command will look like this (first line=local, second line=remote):

Code:
rsh host grep ^Sat Jun 13 06:19:07 CEST 2009 file
              --------one argument-----
grep ^Sat Jun 13 06:19:07 CEST 2009 file

And of course "grep" will try to find "^Sat" is a file called "Jun", which leads to the error.

The solution is to protect your double quotes by escaping them:

Code:
rsh host grep "\"$xx\"" file

I hope this helps.

bakunin
It worked !

Thank you.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies

2. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

3. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

4. Shell Programming and Scripting

grep with "[" and "]" and "dot" within the search string

Hello. Following recommendations for one of my threads, this is working perfectly : #!/bin/bash CNT=$( grep -c -e "some text 1" -e "some text 2" -e "some text 3" "/tmp/log_file.txt" ) Now I need a grep success for some thing like : #!/bin/bash CNT=$( grep -c -e "some text_1... (4 Replies)
Discussion started by: jcdole
4 Replies

5. AIX

echo $varibla | mail -s "subject" "xxx@xxx.com" not ruuning as expected

Hi Folks, As per the subject, the following command is not working as expected. echo $variable | mail -s "subject" "xxx@xxx.com" Could anyone figure it out whats wrong with this. I am using AIX box. Regards, (2 Replies)
Discussion started by: gjarms
2 Replies

6. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

7. Shell Programming and Scripting

ps -ef | grep "string1" "string2" " "string3"

Hi all, can any one suggest me the script to grep multiple strings from ps -ef pls correct the below script . its not working/ i want to print OK if all the below process are running in my solaris system. else i want to print NOT OK. bash-3.00$ ps -ef | grep blu lscpusr 48 42 ... (11 Replies)
Discussion started by: steve2216
11 Replies

8. UNIX for Advanced & Expert Users

add seconds to: date"|"time"|"HHMMSS

Hey all, I have a shell that invokes a AWK. In this AWK i want invoke a function that receives 3 parameters: date: 20080831 time: 235901 duration: 00023 that function receive this 3 parameters and sum to this value two more seconds: 2008083123590100025 Remember that in case that... (3 Replies)
Discussion started by: anaconga
3 Replies

9. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies
Login or Register to Ask a Question