使用ssh在shell脚本中使用未定义的变量

时间:2015-04-23 06:02:27

标签: linux r shell ssh

我使用shell脚本运行R程序如下:

host_list="server@com" Directory="/home/program/" ssh -f "$host_list" 'cd $Directory && nohup Rscript L_1.R> L_1_sh.txt'

但它总是说

Directory: Undefined variable.

2 个答案:

答案 0 :(得分:0)

我不确定,但也许你可以尝试一下:

  1. 在bash中,单引号''不会重复变量Manual
  2. 尝试使用${Directory}或更改变量名称(可能是 保留)

答案 1 :(得分:0)

SSH不会传播所有环境变量。您只需设置本地客户端ssh程序的环境,而不是服务器端。作为一个黑客,只需将其粘贴到ssh远程运行​​的命令中,而不是预命令环境设置。

host_list="server@com"  ssh -f "$host_list" 'Directory="/home/program/"; cd "$Directory" && nohup ...'

这是一个更简单的命令版本,可让您在不依赖于特定程序设置的情况下进行测试。

ssh localhost Dir="/etc"; echo Dir is "$Dir"; cd "$Dir" && pwd && ps