【发布时间】:2018-07-11 14:50:25
【问题描述】:
我有以下程序 foo,它可以采用三个可选标志之一,f、g 或 s:
usage()
{
echo "Use this correctly"
}
while getopts "fgs" opt; do
case $opt in
f)
echo f
foo="$OPTARG"
echo $foo
;;
g)
echo g
foo="g"
;;
s)
echo s
foo="s"
;;
esac
done
if [ -z "$foo" ]
then
usage
exit
fi
echo $foo
exit
当我执行foo -g 或foo -s 时,我得到了预期的输出:
g
g
和
s
s
分别。但是当我这样做时foo -f bar 我希望
f
bar
bar
但得到
f
Use this correctly
表明$foo 在-f 的情况下没有正确设置。我做错了什么?
【问题讨论】: