Я изучаю сценарии оболочки и застрял в этих маленьких экспериментальных сценариях оболочки:
1 #!/usr/bin/env bash
2 A=1
3 (A=2;echo "A is $A in $SHLVL")
4 echo "A is $A in $SHLVL"
5 exit 0
Без сомнения, $ A в строке 3 и строке 4 отличаются друг от друга, что можно объяснить тем, что родительский процесс не может читать переменные, созданные в дочернем процессе, то есть подоболочке. Тем не менее, $ SHLVL в строке 3 и строке 4 - это ЖЕ, что я думал, что $ A в строке 3 должно быть больше, чем $ A в строке 4 на 1. Разве команды в строке 3 не выполняются в подоболочке? Я не знаю, где я неправильно истолковал.
Спасибо за вашу помощь.