当我通过ssh尝试时,此unix命令出了什么问题?

时间:2018-10-25 10:20:37

标签: bash unix

当我运行以下命令时:

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循环的正确格式是什么?

1 个答案:

答案 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下运行,而fordo在本地运行。