${VARIABLE+x} หมายถึงอะไรใน bash? [ทำซ้ำ]

ฉันเจอโค้ดที่ใช้ไวยากรณ์นี้ในเงื่อนไข if:

if [ ! -z ${VARIABLE+x} ]; then
    some commands here
fi

มันทดสอบตัวแปรที่ไม่ว่างหรือไม่? หากเป็นเช่นนั้น จะแตกต่างจาก ! -z "$VARIABLE" อย่างไร


person corvus_192    schedule 22.02.2018    source แหล่งที่มา
comment
stackoverflow.com/a/13864829/214577   -  person Oldskool    schedule 22.02.2018
comment
@Oldskool คุณคิดจะโพสต์สิ่งนั้นเป็นคำตอบหรือไม่?   -  person corvus_192    schedule 22.02.2018
comment
ฉันจะทำเช่นนั้นเป็นการลอกเลียนแบบ :-) ฉันแค่บอกว่าคำตอบนั้นค่อนข้างจะตอบคำถามของคุณ   -  person Oldskool    schedule 22.02.2018


คำตอบ (1)


ดู ส่วนขยายพารามิเตอร์ ใน man bash:

${parameter:+word}

ใช้ค่าสำรอง หาก parameter เป็นโมฆะหรือไม่ได้ตั้งค่า จะไม่มีการทดแทนใดๆ มิฉะนั้น ส่วนขยายของ word จะถูกทดแทน

และสองสามย่อหน้าข้างต้นในส่วนเดียวกัน:

การละเครื่องหมายโคลอนจะทำให้มีการทดสอบเฉพาะพารามิเตอร์ที่ไม่ได้ตั้งค่าไว้

person choroba    schedule 22.02.2018