I'm a bash scripting beginner, and I have a "homework" to do. I figured most of the stuff out but there is a part which says that I have to echo the pid of the parent bash and the pid of the two subshells that I will be running. So I looked online and found this (The Linux documentation project):
#!/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.
So here are my questions:
1) What does the first echo print? Is this the pid of the parent bash?
2) Why does the 2nd echo print out 0?
3) Is $BASH_SUBSHELL a command or a variable?
4) I'm doing everything on a mac, I will try all of this on a Linux machine in some days but
whenever I run this script $BASHPID
doesn't return anything, I just get a new line. Is this because I'm running this on a mac and $BASHPID
doesn't work on a mac?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…