我正在尝试传递参数或为远程执行的bash脚本设置变量。部分麻烦是我连接的服务器在连接后做了一个chroot。我发现执行脚本的唯一方法是这样的:
ssh user@server 'bash -ex' < /tmp/script
我需要在该脚本中使用变量。如果它是以某种方式传递给bash的arg或环境变量并不重要。我能想到解决这个问题的唯一方法就是做一些事情:
sed -e s/VAR/VAR=dog/g /tmp/script > /tmp/replaced
ssh user@server 'bash -ex' < /tmp/replaced
我认为很明显为什么我不喜欢这个解决方案。可以做我想做的事吗?
答案 0 :(得分:2)
如果您正确配置SendEnv
(客户端)和AcceptEnv
(服务器),则可以让ssh为您发送变量。
VAR=dog ssh user@server 'bash -ex' < /tmp/replaced