如何在一个bash文件中运行多个命令?

时间:2012-12-02 11:24:51

标签: bash

我有以下脚本:

#!/bin/bash        
PATH=...
echo 'Syncing database dumps'
rsync ssh user@XX.XXX.XXX.XX:/test/ /test
echo 'Creating symlink'
ln -s test /tmp/test

仅运行第一个命令和所有回声。如果我注释掉第一个命令,则运行symlink命令:

#!/bin/bash        
PATH=...
echo 'Syncing database dumps'
#rsync ssh user@XX.XXX.XXX.XX:/test/ /test
echo 'Creating symlink'
ln -s /test /tmp/test

其余的不运行。有什么想法吗?

根据最近的评论编辑,将-v选项添加到symlink命令。现在我可以看到所有命令都运行了。但是它们不按照它们设置的顺序运行。在rsync命令完成之前,symlink命令将运行。如何设置顺序,以便只在rsync命令完成后运行symlink命令?

1 个答案:

答案 0 :(得分:2)

尝试rsync的--blocking-io选项,即

rsync ssh --blocking-io user@XX.XXX.XXX.XX:/test/ /test

或者,如果你的协议是ssh,你可以使用scp

scp user@XX.XXX.XXX.XX:/test/ /test