Bash:在SSH命令中使用EXPORT

prz*_*zno 5 ssh bash

执行此命令时:

user@local:~ >ssh user@remote " export myvar=myvalue ; echo myvar=$myvar ; "
Run Code Online (Sandbox Code Playgroud)

我得到输出:

myvar=
Run Code Online (Sandbox Code Playgroud)

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

user@remote:~ > export myvar=myvalue ; echo myvar=$myvar ;
Run Code Online (Sandbox Code Playgroud)

输出:

myvar=myvalue
Run Code Online (Sandbox Code Playgroud)

那么如何在ssh命令中设置变量呢?

gle*_*man 11

那是因为你正在使用双引号,所以在调用ssh 之前,变量正在本地机器上展开.使用单引号:

ssh user@remote 'export myvar=myvalue ; echo myvar=$myvar'
Run Code Online (Sandbox Code Playgroud)

  • @HeshamYassin,你错了。试试这个:`export x=local; 回显 $x; ssh user@remote '导出x=远程;回显 $x'; 回显$x` (3认同)