通过远程SSH执行多行命令

时间:2019-06-03 09:27:39

标签: ssh sh

我想通过远程ssh执行多行shell命令。

根据https://unix.stackexchange.com/questions/1459/remote-for-loop-over-ssh,我只需要使用单引号来执行多行for循环。这是我尝试过的:

ssh user@server ‘cd ~/Data; cwd=pwd; for i in `find 201806 -name "day_*"`; do echo $i; cd $i; a.sh; cd $cwd; done’

由于什么也没发生,所以我推测有一个语法错误,我一定不能理解。 201806是Data目录中文件夹的名称,我已经测试了该命令在没有ssh user@server的情况下可以工作。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

尝试一下

ssh -v user@server ‘cd ~/Data; cwd=`pwd`; for i in `find 201806 -name "day_*"`; do echo $i; cd $i; ./a.sh; cd $cwd; done’

还要确保您的 a.sh 文件具有执行权限。 -v 选项将提供有关其进度的调试消息。