Sono un principiante di scripting bash e ho un "compito" da fare. Ho immaginato la maggior parte delle cose, ma c'è una parte che dice che devo echeggiare il pid del genitore bash e il pid delle due sotto shell che eseguirò. Così ho guardato online e ho trovato questo (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.
Così qui sono le mie domande:
1) Che cosa significa la prima stampa eco? È questo il pid del padre bash?
2) Perché il 2 ° eco stampa 0?
3) $ BASH_SUBSHELL è un comando o una variabile?
4) Sto facendo tutto su un Mac, cercherò tutto questo su una macchina Linux in alcuni giorni, ma ogni volta che eseguire questo script $BASHPID
non restituisce nulla, ho appena ottenere una nuova linea. È perché sto facendo funzionare questo su un mac e $BASHPID
non funziona su un mac?
grazie per la risposta e la cancellazione di queste cose per me . Ho scoperto che ho GNU bash, versione 3.2.48 (1). – captain