我正在尝试使用来自cygwin的SSH执行unix命令。我的命令集将导航到某个目录,从而获取特定文件。根据源自该文件的变量,我会尝试启动应用程序。但不知何故变量没有得到源,因为echo不返回任何值。有人能让我知道我在这里失踪了吗
环境变量文件(myenv)的内容是
export TEST_DATA="DATA1:DATA2"
我正在执行以下命令
$ ssh kunal@kspace "ls; cd /disk1/kunal/env; . ./myenv; echo $TEST_DATA; "
答案 0 :(得分:3)
双引号不会抑制扩张。改为使用单引号。
也就是说,变量正在您的身边展开,而不是在您正在进行SSH连接的服务器上。
答案 1 :(得分:1)
因为$TEST_DATA
是双引号,所以它的值由本地shell(您称之为ssh
的那个)进行插值。如果你使用单引号,它将作为ssh命令的一部分传递文字$TEST_DATA
,以便在远端执行。