我有一个名为global.sh
的脚本,它在远程计算机上复制一个名为my_local_script.sh
的shell脚本。
scp my_local_script.sh host@user_a:remote_directory
然后我连接到那个ssh主机并像这样执行它
ssh host@user "
cd remote_directory
./my_local_script.sh
"
到目前为止一切都很好,一切正常,问题是我想在my_local_script.sh
到global.sh
内获取一个局部变量。我试过这个
ssh host@user "
cd remote_directory
my_arg=$(./my_local_script.sh)
"
但这不起作用,甚至我本地脚本的调用也不再正常工作。任何建议我如何克服这个问题。
PS:无法将变量复制到临时文件。如果可能的话,我正在为此寻找一个shell解决方案。
答案 0 :(得分:2)
您正在使用命令替换,这是必要的,但它位于错误的位置。您应该将它放在整个SSH命令周围:
my_var=$(ssh host@user "cd remote_directory; ./my_local_script.sh")
这假设您要捕获的变量由my_local_script输出,例如echo
或printf
。