ว่าฉันมีสคริปต์ทำ:
some-command "$var1" "$var2" ...
และในกรณีที่var1
ว่างเปล่าฉันอยากจะแทนที่ด้วยไม่มีอะไรแทนที่สตริงว่างดังนั้นคำสั่งที่ดำเนินการคือ:
some-command "$var2" ...
และไม่:
some-command '' "$var2" ...
มีวิธีที่ง่ายกว่าการทดสอบตัวแปรและเงื่อนไขรวมถึงมันได้หรือไม่
if [ -n "$1" ]; then
some-command "$var1" "$var2" ...
# or some variant using arrays to build the command
# args+=("$var1")
else
some-command "$var2" ...
fi
มีการทดแทนพารามิเตอร์มากกว่าที่สามารถขยายไปเป็นอะไรใน bash, zsh หรือไม่ชอบ? ฉันอาจยังต้องการใช้ globbing ในส่วนที่เหลือของข้อโต้แย้งดังนั้นการปิดการใช้งานและการเลิกตัวแปรไม่ได้เป็นตัวเลือก
man
หน้า (-;