连续命令


14

我是否正确地假设,当;在一条线上连接两个命令时,Bash总是等到第一个命令退出后才执行第二个命令?同样,在shell脚本中,在不同的行上包含两个不同的命令,Bash总是等到第一行的命令退出后才在第二行执行命令?

如果是这种情况,是否可以在一行或一个脚本中执行两个命令,以使第二个命令不等到第一个命令完成后再执行?

另外,shell脚本中的不同行是否等效于由;或分隔的单独行&&


Answers:


26

没错,脚本中的命令默认情况下会顺序执行。

您可以在命令后缀&(一个&号)在后台运行命令。

在单独的行上的命令等效于;默认情况下与之合并的命令。如果您告诉外壳程序退出非零退出代码(set -e),则脚本将像执行所有命令一样与一起执行&&


2

要回答第二个问题,您可以用来&在后台启动命令并继续执行脚本,而不必等待脚本完成。

commandA & commandB

如果在交互式终端(而不是脚本)上运行此fg命令,则可以用来使后台命令重新成为焦点,或者jobs查看后台任务列表。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.