使用SSH设置环境变量

时间:2010-05-24 06:10:16

标签: unix shell ssh

我正在尝试使用来自cygwin的SSH执行unix命令。我的命令集将导航到某个目录,从而获取特定文件。根据源自该文件的变量,我会尝试启动应用程序。但不知何故变量没有得到源,因为echo不返回任何值。有人能让我知道我在这里失踪了吗

环境变量文件(myenv)的内容是

export TEST_DATA="DATA1:DATA2"

我正在执行以下命令

$ ssh kunal@kspace "ls; cd /disk1/kunal/env; . ./myenv; echo $TEST_DATA; "

2 个答案:

答案 0 :(得分:3)

双引号不会抑制扩张。改为使用单引号。

也就是说,变量正在您的身边展开,而不是在您正在进行SSH连接的服务器上。

答案 1 :(得分:1)

因为$TEST_DATA是双引号,所以它的值由本地shell(您称之为ssh的那个)进行插值。如果你使用单引号,它将作为ssh命令的一部分传递文字$TEST_DATA,以便在远端执行。