执行一个命令使其在后台运行的方式有两种:
1. 在bash 命令后加 &
tar -zcvf dist.tgz dist &
(tar -zcvf dist.tgz dist; cp dist.tgz ../) &
2. 利用 coproc 命令, 此命令会产生一个新的shell进程来执行命令
coproc tar -zcvf dist.tgz dist
coproc proceed_name { tar -zcvf dist.tgz dist; }
3. echo $BASH_SUBSHELL, 如果该命令返回0,则表明没有子shell,如果返回1或其他更大的数字,
就表明存在子shell。
4. 命令列表,命令分组,进程列表
$ pwd; ls; cd /etc; 一系列以分号分割的命令,为命令列表
$ (pwd; ls; cd /ets) 以圆括号包裹起来的命令列表,则会变成进程列表,执行时会产生一个子shell 运行其中的命令
$ { pwd; ls; cd/etc; } 以花括号包裹起来,前后留有空格,并以分号结尾的单个或多个命令为命令分组,其不会产生子shell
进程列表也是一种命令分组