linux shell: 命令运行符号(control operator) terminated '&'的意义塈了解control operator指南

好久以前就看到一些脚本中执行一个命令用’&'结尾,类似如下:

#!/bin/bash
lcd_test &

当时搞明白了意思,但现在又忘记了,赶紧补习一下在此做个记录:
根据stackoverflow上这个帖子《What does “&” at the end of a linux command mean?》的回答(如下图红框标),命令以’&'结尾就是让命令以后台形式运行

linux shell: 命令运行符号(control operator) terminated '&'的意义塈了解control operator指南_第1张图片

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

linux shell: 命令运行符号(control operator) terminated '&'的意义塈了解control operator指南_第2张图片

并在 《3.7.3 Command Execution Environment》 找到关于‘&’ 更进一步的说明,如下图红框标注
linux shell: 命令运行符号(control operator) terminated '&'的意义塈了解control operator指南_第3张图片

关于什么是control operator,参见2 Definitions(如下图),我们所熟知的||,&&都是control operator
linux shell: 命令运行符号(control operator) terminated '&'的意义塈了解control operator指南_第4张图片

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

你可能感兴趣的:(开发工具,script)