ฉันมีรหัสนี้ -
#getoptDemo.sh
usage()
{
echo "usage: <command> options:<w|l|h>"
}
while getopts wlh: option
do
case $option in
(w)
name='1';;
(l)
name='2';;
(h)
name='3';;
(*)
usage
exit;;
esac
done
print 'hi'$name
เมื่อผมทำงานbash getoptDemos.sh
(ไม่มีตัวเลือก) จะพิมพ์แทนการเรียกฟังก์ชั่นhi
usage
มันเรียกการใช้งานเมื่อตัวเลือกอื่นนอกเหนือจาก w, h และ l จะได้รับ จากนั้นไม่สามารถใช้งานได้เมื่อไม่มีการระบุตัวเลือก
ผมได้ลองใช้?
, \?
, :
ในสถานที่ของ*
แต่ฉันไม่สามารถบรรลุสิ่งที่ผมอยากจะ ผมหมายถึงทั้งหมดที่docs
เกี่ยวกับการบอกว่ามันกับการใช้งานgetopt
?
ผมทำอะไรผิดหรือเปล่า?
/bin/bash