好久以前就看到一些脚本中执行一个命令用’&'结尾,类似如下:
#!/bin/bash
lcd_test &
当时搞明白了意思,但现在又忘记了,赶紧补习一下在此做个记录:
根据stackoverflow上这个帖子《What does “&” at the end of a linux command mean?》的回答(如下图红框标),命令以’&'结尾就是让命令以后台形式运行。

说实话,要照answer所说执行man bash来找到这个手册上的说明真不容易,我没找到,不过我在gnu的官网的
bash参考手册中找到了官方说明:《Bash Reference Manual》
在《3.2.5 Coprocesses》节(如下图),可知‘&’是一个 control operator,与coproc等价,用于在subshell中异步执行命令。

并在 《3.7.3 Command Execution Environment》 找到关于‘&’ 更进一步的说明,如下图红框标注

关于什么是control operator,参见2 Definitions(如下图),我们所熟知的||,&&都是control operator

《Bash Reference Manual》是关于Bash很权威详尽的资料了,如果关于bash有什么不明白的,在这个文档中搜索到的都是最终答案。

本文解析了在Bash脚本中使用‘&’符号使命令后台运行的技巧,介绍了其作为控制运算符的功能,以及如何在子shell中异步执行命令。文章引用了《Bash Reference Manual》中的权威解释。
828

被折叠的 条评论
为什么被折叠?



