bash顺序执行时间线



假设我键入以下命令:

/usr/local/bin/wget -O "/storehere.xml" "download1" && ./parse_xml;/usr/local/bin/wget -O "/storehere.xml" "download2" && ./parse_xml;

据我所知,在检索并存储download1之后,shell将执行parse_xml。然而,我不清楚的是,下载2的下一个wget命令何时执行?parse_xml执行完毕(当然是第一次)?或者在请求执行parse_xml之后?如果答案是后一个,我想知道一种方法,让我的脚本在执行下一个wget之前等待parse_xml的返回代码。

谢谢。

在您的情况下,在调用下一个命令之前,每个命令都会被调用并成功完成(或失败)。

解释:

  • 在一行上划分不同命令的&&表示法意味着"如果成功执行之前的命令(返回代码,$?为零),则在&&之后执行命令。">
  • 在一行上划分不同命令的;表示法意味着"在‘;’之前运行命令,然后在它之后运行命令,无论第一个命令是否成功

要测试这一点,您可以在提示符上尝试以下两个不同的命令:

# wget will fail in both cases:
# case 1, with &&
$ wget hello && ls
# case 2, with ;
$ wget hello; ls

相关内容

  • 没有找到相关文章

最新更新