สำหรับบางเซสชั่นเชลล์ฉันต้องการพิมพ์แฟล็กคำเตือนหากไม่ได้ตั้งค่าและส่งออกตัวแปรเชลล์
มันค่อนข้างง่ายที่จะทำสิ่งนี้เพื่อพิมพ์ "ข้อผิดพลาด" ในพรอมต์หากSET_MEไม่ได้ตั้งค่าหรือเป็นโมฆะ
test_var () { test -z "$1" && echo Error; }
PS1='$(test_var "$SET_ME") \$ '
อย่างไรก็ตามสิ่งนี้ล้มเหลวในการตั้งค่าสถานะถ้าฉันตั้งค่าSET_MEโดยไม่ส่งออกซึ่งเป็นข้อผิดพลาดที่ฉันต้องการตรวจสอบ มีบางสิ่งที่คล้าย$(bash -c 'test -z "$SET_ME" && echo Error;')หรือส่งออกของ grepping exportมีการตรวจสอบง่าย ๆ ที่ฉันสามารถทำได้เพื่อทดสอบว่าSET_MEมีการส่งออกหรือไม่
โซลูชันที่ไม่ใช่ POSIX และ bash-only เป็นที่ยอมรับ
typesetคุณลักษณะอื่น ๆ