Passing a variable via ssh, can't quite get it right


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Passing a variable via ssh, can't quite get it right
# 1  
Old 05-16-2016
Passing a variable via ssh, can't quite get it right

Hi Guys n Girls,

Below im using a while command to wait for a file on another server then carrying on with the script.....
I dont believe the $Sausage1 variable is being passed to the other server so its not finding the file. If i replace the variable with the date then it works as expected.

Could someone please help with the correct layout of the command using the variable?

Code:
Sausage1=`date '+%Y%m%d'`

Code:
ssh transfer@theserver 'while [ ! -f /the/path/tofile/filename_out.bin_"$Sausage1"_?????? ]; do sleep 120; done'

# 2  
Old 05-16-2016
Shell variables are not expanded when they appear in a string quoted by single-quotes. Since there are no spaces in the output from that date command, you could just use:
Code:
Sausage1=`date '+%Y%m%d'`
ssh transfer@theserver "while [ ! -f /the/path/tofile/filename_out.bin_$Sausage1_?????? ]; do sleep 120; done"

In cases where the variable you are expanding might contain spaces you can escape the inner double-quotes as in:
Code:
Sausage1=`date '+%Y%m%d'`
ssh transfer@theserver "while [ ! -f /the/path/tofile/filename_out.bin_\"$Sausage1\"_?????? ]; do sleep 120; done"

or, if you aren't using an pure Bourne shell, the preferred form:
Code:
Sausage1=$(date '+%Y%m%d')
ssh transfer@theserver "while [ ! -f /the/path/tofile/filename_out.bin_\"$Sausage1\"_?????? ]; do sleep 120; done"

Note also that this script will fail if the filename matching pattern filename_out.bin_"$Sausage1"_?????? ever matches more than one file.
This User Gave Thanks to Don Cragun For This Post:
# 3  
Old 05-16-2016
Code:
Sausage1=$(date '+%Y%m%d')
ssh transfer@theserver "while [ ! -f /the/path/tofile/filename_out.bin_\"$Sausage1\"_?????? ]; do sleep 120; done"

By the gods! This did it......i was pulling out what little hair i have left. Brilliant! thank you for your clear explanation and explaining the errors in my ways Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Delete line from remote file over ssh passing variable

I have a variable called $a1 which maps to something like "http://servername proxy1 count http" and a lots of entries in a file on remote server. If I have the following in my .sh script: sed -i "\%$a1%d" mylog.txtthe line is deleted from mylog.txt. Great. I'm trying now to remvoe this from a... (3 Replies)
Discussion started by: say170
3 Replies

2. UNIX for Advanced & Expert Users

Passing variable as input & storing output in other variable

I have a below syntax its working fine... var12=$(ps -ef | grep apache | awk '{print $2,$4}') Im getting expected output as below: printf "%b\n" "${VAR12}" dell 123 dell 456 dell 457 Now I wrote a while loop.. the output of VAR12 should be passed as input parameters to while loop and results... (5 Replies)
Discussion started by: sam@sam
5 Replies

3. Shell Programming and Scripting

Passing password with SSH command

Hi Experts, I have specific requirement where I want to pass the password with the ssh username@hostname command . I dont want to use RSA public and private keys also. Because that will be on production server and no one wants to give access like that. Second thing it is production... (14 Replies)
Discussion started by: sharsour
14 Replies

4. Shell Programming and Scripting

Passing password for ssh in Script

I want to do following 2 commands via script: 1) eval `ssh-agent`2) ssh-add /export/home/sufuser/.ssh/id_rsa When asked for passphrase enter "passwordpassword1234 but whenever I run the script it stucks after "ssh-add /export/home/sufuser/.ssh/id_rsa" command and asks fro... (4 Replies)
Discussion started by: yogeshpawar
4 Replies

5. Shell Programming and Scripting

Passing awk through ssh help

First off we have hundreds of webservers in our farm that we sometimes have to collect logs for customers. Thing is the script that I currently am working on doesnt like my awk commands via ssh. I am very novice at best so all help would be greatly appreciated. ssh a$active "awk... (9 Replies)
Discussion started by: gbarnes
9 Replies

6. Shell Programming and Scripting

SSH Login by passing password.

ssh/sftp login by passing password , is it possible.Don't want to expect. (1 Reply)
Discussion started by: dinjo_jo
1 Replies

7. Shell Programming and Scripting

Passing SSH Command Parameters

Hi, I wan to pass arguments to remote script in Unix . For that I'm using ssh PFB the code I'm using: ssh -t -l osdac 10.81.33.51 "cd /appl/OSD/LOGS/flstr010/test.sh "$1" "$2"" Problem is I'm not able to pass second argument . Can anyone plz help me in resolving this. (5 Replies)
Discussion started by: suchitasaner27
5 Replies

8. AIX

Passing a command over SSH

I'm trying to run a command over ssh to AIX 5.2, something like: ssh machine ls but it just hangs. I can ssh into the machine and run a command, but can't pass it like above. Is there a security setting that disables this by default? If so, how do I change it? Thanks! (8 Replies)
Discussion started by: hansnueski
8 Replies

9. UNIX for Dummies Questions & Answers

passing a variable inside a variable to a function

I would like to know how to pass a variable inside a variable to a function. sample code below -------------- for x in 1 9 do check_null $C$x ##call function to check if the value is null if then echo "line number:$var_cnt,... (2 Replies)
Discussion started by: KingVikram
2 Replies

10. Solaris

Passing SSH Command Parameters

On Solaris 5.9, is there any way to pass parameter(s), via SSH, to a command defined in the remote host's authorized_keys file? We have a menu that uses SSH to control some apps on our various hosts. I've been tasked with enhancing it and making it more secure. So far, the local host menu... (2 Replies)
Discussion started by: PabloCruise77
2 Replies
Login or Register to Ask a Question