ฉันดูเหมือนจะไม่ได้รับ JSON ว่างเปล่า{}
เพื่อสะท้อนถ้า envvar หายไป ฉันอาจมีส่วนท้าย}
ในเอาต์พุตหากตั้งค่าไว้หรือ escape แสดงขึ้น
bash-3.2$ unset X
bash-3.2$ echo "${X:-{}}"
{}
bash-3.2$ X=y
bash-3.2$ echo "${X:-{}}"
y}
bash-3.2$ echo "${X:-{\}}"
y
bash-3.2$ unset X
bash-3.2$ echo "${X:-{\}}"
{\}
bash-3.2$ echo "${X:-'{}'}"
'{}'
bash-3.2$ X=z
bash-3.2$ echo "${X:-'{}'}"
z
ฉันจะหนีมันอย่างถูกต้องได้อย่างไร
@SergiyKolodyazhnyy นั่นได้รับการแก้ไขใน 4.2; ฉันจำการสนทนาบางอย่างเกี่ยวกับการอ้างอิงการขยายคำตามผู้ดำเนินการขยายพารามิเตอร์เพื่อให้สอดคล้องกับมาตรฐาน POSIX
—
chepner
echo "${X:-{\}}"
ก็ใช้งานได้ดี