Bash:在SSH命令中使用EXPORT

6
执行此命令时:
user@local:~ >ssh user@remote " export myvar=myvalue ; echo myvar=$myvar ; "

我看到的输出是:
myvar=

当直接在远程机器上运行时,我得到了预期的结果:

user@remote:~ > export myvar=myvalue ; echo myvar=$myvar ;

输出:

myvar=myvalue

那么如何在SSH命令内设置一个变量呢?

1个回答

13

这是因为您使用了双引号,所以变量会在您的本地机器上被扩展,甚至在 ssh 被调用之前就已经扩展了。请使用单引号:

ssh user@remote 'export myvar=myvalue ; echo myvar=$myvar'

1
你在误导那个人!它不起作用,$myvar打印本地值。 - Hesham Yassin
2
@HeshamYassin,你是错误的。试试这个:export x=local; echo $x; ssh user@remote 'export x=remote; echo $x'; echo $x - glenn jackman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接