我是一个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.
以下是我的问题:
1) 第一个echo打印的是什么?这是父bash的pid吗?
2) 为什么第二个echo打印出0?
3) $BASH_SUBSHELL是一个命令还是一个变量?
4) 我正在使用mac做所有的事情,在未来几天我会在Linux机器上尝试所有这些操作,但是无论何时我运行这个脚本$BASHPID
都不会返回任何东西,我只得到一个新的行。这是因为我在mac上运行这个脚本,$BASHPID
在mac上不起作用吗?
bash
版本。 - Noel Yap