传递变量

传递变量

问题描述:

我想通过ssh连接传递变量,就像这样:传递变量

working_dir="/home/user/some_dir/"

ssh [email protected]_host 'qsub $working_dir/some_file.txt'

连接本身的建立,但是这个代码给我以下错误:

working_dir: Undefined variable.

这可以通过吨来解释,事实上,远程机器没有变量$working_dir,因为它是在本地定义的。

有没有办法在本地获取命令中的值?使用双引号

试试,应该在本地计算变量:

ssh [email protected]_host "qsub $working_dir/some_file.txt"

+0

Thnx,你是一个拯救生命的人! – lugte098 2010-03-10 12:47:27

+0

我的小bash-recipe:“只有在你需要确保它们之间的内容应该从字面上解释时才使用单引号。” – orithena 2010-03-10 12:51:40

+0

当你需要在本地扩展grep变量以远程传递给命令时,该怎么办? ssh qa @ myremote'find $(ls -r /home/qa/log/*.*.log | grep -vi audit | head -n 1)-type f -print | xargs grep $ ERRORS' – Dss 2015-07-14 20:43:28

您使用的是单引号字符串 - 和我想的变量不是那些内插值。

如果您尝试使用双引号字符串怎么办?
像这样:

ssh [email protected]_host "qsub $working_dir/some_file.txt" 

随即,$working_dir变量应该在你的最终进行插值 - 并通过SSH连接发送它的价值。

+0

也谢谢你,快速回复! – lugte098 2010-03-10 12:47:49

+0

不客气:-) – 2010-03-10 12:49:10