bash脚本中的执行顺序

时间:2012-12-07 15:39:23

标签: bash sequence

执行这些bash命令的顺序是什么? 第四行是否可能在第一行或第二行完成之前开始?

find $LOCAL_TMP -type f -exec grep -l 'operationType="ACTIVATION"' {} ';' | xargs grep -l 'serviceCode="ACC-FTTS' | xargs -ICrTopoIpnatif mmv CrTopoIpnatif $LOCAL_TOPO

find $LOCAL_TMP -type f -exec grep -l 'operationType="DEACTIVATION"' {} ';' | xargs grep -l 'serviceCode="ACC-FTTS' | xargs -ICrTopoIpnatif mmv CrTopoIpnatif $LOCAL_TOPO

echo "mmv $LOCAL_TMP/**/*.xml $REP_LOCAL" >> $LOGFILE
mmv "$LOCAL_TMP/**/*.xml" "$REP_LOCAL" >> $LOGFILE

我问,因为我在$ REP_LOCAL中找到了文件(这是另一个脚本的池目录,并且文件显示在脚本的日志中),而不是$ LOCAL_TOPO(脚本日志中没有任何内容)。< / p>

2 个答案:

答案 0 :(得分:2)

这是顺序的。一切都按顺序发生。如果您使用以下标题运行脚本

#!/bin/bash -x

然后你会在执行时看到每个命令。

答案 1 :(得分:1)

只要您在前台执行所有命令,命令就会按照您在脚本中指定的顺序执行。

command1
command2
command3

一个接一个地执行。

下面

command1 &
command2
command3

command2和command3 可能在command1之前完成,如果command1需要更多时间来完成其他两个。这是因为command1和command2及更高版本的命令3并行运行,而在第一个示例中,所有命令都按顺序在前台运行。