ไม่ว่าฉันจะแนะนำให้ทำเช่นนี้
(sirius)~: zsh -c 'print hello; zsh -i'
hello
(sirius)~: echo $SHLVL
2
มีลูกเล่นอื่น ๆ ที่คุณสามารถเล่นกับหน้าจอและใช้$STY
ตัวแปร
หากคุณต้องการให้บางสิ่งรันจาก zsh ด้วยแต่ละหน้าจอคุณสามารถตรวจสอบตัวแปร $ STY ภายใน. zshrc หรือ. zlogin ของคุณ <PID>.<TTY>.<HOSTNAME>
มันมีอยู่ในรูปแบบ
if [[ -n $STY ]] then
if [[ -f ~/.zsh-$STY[(ws:.:)2] ]] then
. ~/.zsh-$STY[(ws:.:)2]
fi
fi
หากในหน้าจอและหาก~/.zsh-<TTY>
(จากตัวแปร $ STY) มีอยู่ให้ระบุแหล่งที่มา คุณยังสามารถตั้งค่าตัวแปรสภาพแวดล้อมก่อนที่จะเรียกเชลล์แบบโต้ตอบ
> FOO=bar zsh -i
> env | grep FOO
FOO=bar
> RUNTHISCOMMAND=/path/to/script zsh -i
.zshrc:
if [[ -n $RUNTHISCOMMAND ]] then
$RUNTHISCOMMAND
fi
เพิ่มการตรวจสอบเหล่านั้นลงใน. zshrc / .zlogin ของคุณ