$ echo $SHELL
/bin/bash
$ /bin/ksh93
$ echo $SHELL
/bin/bash
$ file /bin/ksh93
/bin/ksh93: ELF 64-bit LSB executable, x86-64, version 1 (SYSV),
dynamically linked (uses shared libs), for GNU/Linux 2.6.8, stripped
$ getent passwd test111
test111:x:1008:1008:,,,:/tmp:/bin/ksh93
$ ssh test@localhost
test@localhost's password:
$ echo $SHELL
/bin/ksh93
$ bash
$ echo $SHELL
/bin/ksh93
ฉันคาดว่า$SHELL
จะเปลี่ยนหลังจากใช้เชลล์อีกตัว ทำไมไม่เป็นเช่นนั้น?
PS อย่างไรก็ตามเชลล์เปลี่ยนแปลงเพียงตัวแปร $ SHELL เท่านั้นที่ยังคงเหมือนเดิม:
$ dash
$ echo $SHELL
/bin/bash
$ T=test ; [[ $T = *est ]] && echo ok
dash: [[: not found
echo $0
เพื่อรับกระสุนปัจจุบัน