导出变量后通过 SSH 对远程服务器执行命令

导出变量后通过 SSH 对远程服务器执行命令

我有两台机器,A 和 B。我需要通过从 A 进行 SSH 来执行位于 B 的脚本。

为了运行脚本,我还需要导出一个变量。如果我仅通过 SSH 导出变量,然后再次尝试通过 SSH 执行脚本,则该变量将不再可用。

有没有办法导出变量并使其在与脚本相同的会话中可用?

我希望得到这样的结果(但是没有用):

ssh root@B export PATH=$PATH:/add/stuff/here && runScript.sh

即使我执行以下操作,路径也不会更新:

ssh root@B export PATH=$PATH:/add/stuff/here && echo $PATH

答案1

传递第三个参数时你有点错误。在你提供的命令中,你传递了与指令一样多的参数,此外,你还传递了echolocal $PATH。你必须将整个命令作为一个参数传递,放在单引号中。

代替

ssh root@B export PATH=$PATH:/add/stuff/here && echo $PATH

即:

(ssh + root@B + export + PATH=...) && (echo + $PATH)

你应该做:

ssh root@B 'export PATH="$PATH:/add/stuff/here" && echo $PATH'

即:

ssh + root@B + '(export + PATH=..) && (echo $PATH)'

相关内容