0

这些 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 中(脚本日志中没有任何内容)。

4

2 回答 2

3

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

#!/bin/bash -x

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

于 2012-12-07T15:41:43.903 回答
2

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

command1
command2
command3

一个接一个地被执行。

这里

command1 &
command2
command3

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

于 2012-12-07T15:50:30.037 回答