Bash Shell依次执行多个命令

你需要执行多个命令,但其中有些命令的运行时间较长,你又不想在输入下一个命令前等着前面的命令执行完毕

解决方案

这个问题有 3 种解决方案,第一种非常平淡无奇:不停输入就行了。Linux 或 Unix 系统足够先进,能够在处理先前命令的同时允许你继续输入,因此将命令一个接一个敲进去即可。

另一种解决方案也挺简单:将这些命令写入文件,然后让 bash 执行该文件(简单的 shell 脚本)中的命令。假设我们想执行 3 个命令:long、medium、short,这些命令名反映了各自的执行时间。我们需要按顺序执行这些命令,但又不想在输入其他命令前等着 long 脚本运行完毕。此时可以用 shell 脚本(也就是批处理文件)来完成。以下是初级做法:

$ cat > simple.script
long
medium
short
^D                      # Ctrl-D,屏幕上不可见
$ bash ./simple.script

第三种是依次执行每个命令,这无疑也是最好的解决方案。如果你想运行各个程序,不管之前的程序是否成功运行,只需要用分号将其隔开:

long ; medium ; short

如果只想在上一个程序成功运行的情况下运行下一个程序,并且所有的程序都正确设置了退出码,那么可以用&& 将其隔开:

long && medium && short

讨论

cat 示例是向文件输入文本的一种非常初级的方法:我们将命令输出重定向到文件 simple.script(。最好还是使用一款真正的编辑器,但这不太方便在示例中展示。从现在开始,如果需要展现脚本,我们要么直接给出代码,不特地在命令行下输入;要么用 cat filename 这样的命令将原本出现在屏幕上的内容(而不是重定向输出到文件)放在示例中。

第三种解决方案的重点在于可以在 bash 命令行中放入多个命令。在第一种解决方案中,第一个命令退出后才会执行第二个命令,第二个命令退出后才会执行第三个命令,以此类推。在第二种解决方案中,只有第一个命令成功执行后第二个命令才会执行,第二个命令成功执行后第三个命令才会执行,以此类推,命令行中出现的命令均是如此。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!