我有这个脚本:
ssh -T user@$123.456.789.123 <<EOF
cd www
var=$(tail index.htm)
echo $var
EOF
我认为应该做的是:
相反,似乎tail是在更改文件夹之前执行的,因此找不到index.htm文件。
我尝试使用不同的命令,并且每次似乎我尝试存储到变量中的命令替换结果在打开SSH连接后,在执行任何其他脚本之前都立即执行。
我在这里想念什么?
最佳答案
在将here文档的内容传递给$(...)
之前,将在本地扩展ssh
。要将文字文本发送到远程服务器,请引用此处文档定界符。
ssh -T user@$123.456.789.123 <<'EOF'
cd www
var=$(tail index.htm)
echo "$var"
EOF
(也请引用
$var
的扩展名,以保护与 shell 的任何嵌入式间距。)
关于bash - 为什么在此bash脚本中执行顺序相反?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19410743/