3
ฉันจะตรวจสอบได้อย่างไรว่าฉันอยู่ในชั้นย่อย
ฉันพยายามเขียนฟังก์ชั่นเพื่อแทนที่ฟังก์ชั่นการทำงานของexitbuiltin เพื่อป้องกันตัวเองไม่ให้ออกจากเครื่อง ฉันพยายามใช้SHLVLตัวแปรสภาพแวดล้อม แต่ดูเหมือนจะไม่เปลี่ยนแปลงภายใน subshells: $ echo $SHLVL 1 $ ( echo $SHLVL ) 1 $ bash -c 'echo $SHLVL' 2 ฟังก์ชั่นของฉันเป็นดังนี้: exit () { if [[ $SHLVL -eq 1 ]]; then printf '%s\n' "Nice try!" >&2 else command exit fi } สิ่งนี้จะไม่อนุญาตให้ฉันใช้exitภายใน subshells แม้ว่า: $ exit Nice try! $ …