我是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)第一个回显打印什么?这是父bash的pid吗?
2)为什么第二回波打印出0?
3)$ BASH_SUBSHELL是命令还是变量?
4)我正在Mac上做所有事情,几天后我将在Linux机器上尝试所有这些操作,但是每当我运行此脚本$BASHPID都不会返回任何内容时,我会得到一条换行。这是因为我在Mac上运行该软件,而在Mac上$BASHPID却无法使用?
$BASHPID
查看有关此文档,它看起来像:
$$
BASHPID
BASH_SUBSHELL