我是一个bash脚本初学者,我有一个"功课"要做.我想出了大部分的东西,但有一部分说我必须回应父bash的pid和我将要运行的两个子shell的pid.所以我在网上找到了这个(Linux文档项目):
#!/bin/bash4
echo "\$\$ outside of subshell = $$" # 9602
echo "\$BASH_SUBSHELL outside of subshell = $BASH_SUBSHELL" # 0
echo "\$BASHPID outside of subshell = $BASHPID" # 9602
echo
( echo "\$\$ inside of subshell = $$" # 9602
echo "\$BASH_SUBSHELL inside of subshell = $BASH_SUBSHELL" # 1
echo "\$BASHPID inside of subshell = $BASHPID" ) # 9603
# Note that $$ returns PID of parent process.
Run Code Online (Sandbox Code Playgroud)
所以这是我的问题:
1)第一个回声打印是什么?这是父母bash的pid吗?
2)为什么第二个回波打印出0?
3)$ BASH_SUBSHELL是命令还是变量?
4)我正在Mac上做所有事情,我会在某些日子里在Linux机器上尝试所有这些但是每当我运行这个脚本时$BASHPID都没有返回任何内容,我只是换了一个新行.这是因为我在Mac上运行它并且$BASHPID不能在Mac上运行吗?