当我运行以下命令时:
ssh $HOST1 for dir in /local/apps/*; do ls -lrt $dir | grep live ; done
我收到以下错误:
bash: syntax error near unexpected token `do'
在本地执行此操作无需使用ssh即可。
我什至尝试
ssh $HOST1 "for dir in /local/apps/*; do ls -lrt $dir | grep live ; done"
但这给出了意外的结果。通过ssh进行for循环的正确格式是什么?
答案 0 :(得分:3)
尝试
runtime
使用双引号将ssh $HOST1 'for dir in /local/apps/*; do ls -lrt $dir | grep live ; done'
扩展到本地计算机上,而不是作为远程SSH命令的一部分。
仅供参考,原因
$dir
不起作用是因为它被解释为
ssh $HOST1 for dir in /local/apps/*; do ls -lrt $dir | grep live ; done
ssh $HOST1 'for dir in /local/apps/*'
do ls -lrt $dir | grep live
done
在远程计算机上的SSH下运行,而for
和do
在本地运行。