我想通过远程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是数据目录中的一个文件夹的名称,我已经测试过该命令在没有ssh user@server
的情况下也可以工作。有什么建议吗?
发布于 2019-06-03 18:47:28
尝尝这个
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选项将提供有关其进度的调试消息。
https://stackoverflow.com/questions/56424490
复制相似问题