私はbashスクリプトの初心者です。私は "宿題"を持っています。私はほとんどのものを考え出しましたが、私が実行する2つのサブシェルの親bashとpidのpidをエコーしなければならないという部分があります。だから私は、オンラインで見て、この(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.
を私の質問は以下のとおりです。
1)最初のエコーの印刷を行いますか?これは親のbashのpidですか?
2)2番目のエコーが0になるのはなぜですか?
3)$ BASH_SUBSHELLはコマンドか変数ですか?
4)私はすべてのことをMacでやっていますが、Linuxマシンで何度か試してみますが、 このスクリプトを実行するたびに何も返されません。新しい行が表示されます。これは私がMacでこれを実行しているので$BASHPID
はMacで動作しないのですか?
ありがとう:
あなたは多くの
bash(1)
仕事をやっているつもりなら、あなたはまた、次の必要があります。 GNU bashバージョン3.2.48(1)があることが判明しました。 – captain