このコマンドをzshに書き込みます
pwd ; ls ; cd /etc ; pwd ; cd ; pwd ; ls ; echo $BASH_SUBSHELL}
/root
Desktop Downloads Music Public Templates
Documents for_play Pictures pycharm Videos
/etc
/root
Desktop Downloads Music Public Templates
Documents for_play Pictures pycharm Videos
私はそれをbashで書いた。
pwd ; ls ; cd /etc ; pwd ; cd ; pwd ; ls ; echo $BASH_SUBSHELL
/root
Desktop Documents Downloads for_play Music
Pictures Public pycharm Templates Videos
/etc
/root
Desktop Documents Downloads for_play Music
Pictures Public pycharm Templates Videos
0
zshに0が表示されないのはなぜですか?
ベストアンサー1
環境に存在しない変数には値がないため、印刷することはありません。変数が魔法のように値を取得するわけではありません0
。変数が定義されていない場合は未定義です。
$ echo "$sandfadsf"
$ sandfadsf=0
$ echo $sandfadsf
0
したがって、runを実行すると、bash
bash関連の変数がBASH_SUBSHELL
設定され、値を持つようになります。を実行するとzsh
変数が設定されず、存在しないため、実行すると変数echo $BASH_SUBSHELL
は$BASH_SUBSHELL
何も拡張されないため、何も印刷されません。
以下ですべての内容を確認できますset -x
。
## bash
$ set -x
$ echo $BASH_SUBSHELL
+ echo 0
0
$ zsh
+ zsh
% set -x
% echo $BASH_SUBSHELL
+zsh:4> echo
%