我有两台机器,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
传递第三个参数时你有点错误。在你提供的命令中,你传递了与指令一样多的参数,此外,你还传递了echo
local $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)'