tags:

views:

118

answers:

2

I'm trying to pass a variable through a ssh connection, like this:

working_dir="/home/user/some_dir/"

ssh $USER@some_host 'qsub $working_dir/some_file.txt'

The connection itself is established, but this code gives me the following error:

working_dir: Undefined variable.

This could be explained, by the fact that the remote machine doesn't have the variable $working_dir since it was defined locally.

Is there a way of getting the value in the command locally?

+5  A: 

Try using double quotes, that should evaluate the variable locally:

ssh $USER@some_host "qsub $working_dir/some_file.txt"

maligree
Thnx, you're a life-saver!
lugte098
Little bash-recipe of mine: "Use single quotes only if you need to make sure the content between them should be interpreted literally."
maligree
+2  A: 

You are using a single-quoted string -- and I suppose variables are not interpolated inside of those.

What if you try with a double-quoted string ?
Like this :

ssh $USER@some_host "qsub $working_dir/some_file.txt"

With that, the $working_dir variable should be interpolated on your end -- and its value sent via the ssh connection.

Pascal MARTIN
Thank you too, for the quick reply!
lugte098
You're welcome :-)
Pascal MARTIN