Estou acidentalmente preso no desejo de revelar o número do subshell (BASH_SUBSHELL) de dentro do próprio script, mas recebo o subshell 0
Aqui está a linha do script
echo "Operated from subshell: $BASH_SUBSHELL
Parte da saída do shell no terminal
- echo 'Operado do subshell: 0' Operado do subshell: 0
Pergunta É possível revelar o subshell que um script está operando dentro do próprio script?
Aqui está algum código que realmente usa alguns subhells:
Como os scripts não são executados em subshells, essa saída está correta. Os subshells são criados por algumas coisas, incluindo parênteses
( ... )
, fundo com&
, e substituição de comando$( ... )
, mas não pela inicialização de scripts: isso cria um shell totalmente novo para executar o script.O que você pode estar pensando é na
SHLVL
variável , que incrementa para cada camada de script (e shell):Se sua linha de script fosse
então você obteria a saída que eu acho que você esperava. Se o script fosse recorrente,
$SHLVL
seria incrementado a cada vez.