我正在尝试getops在一个函数中使用它,但它似乎不起作用:
#!/bin/bash
function main()
{
while getopts ":p:t:c:b:" o; do
case "${o}" in
p)
echo "GOt P"
p=$OPTARG
;;
t)
echo "GOt T"
t=$OPTARG
;;
c)
echo "GOt C"
c=$OPTARG
;;
b)
echo "GOt b"
b=$OPTARG
;;
*)
#usage
echo "Unknown Option"
return
;;
esac
done
echo $p
echo $t
echo $c
echo $b
}
main
Run Code Online (Sandbox Code Playgroud)
然后像这样运行它:
$ ./bin/testArguments.sh -p . -t README.md -c 234 -b 1
Run Code Online (Sandbox Code Playgroud)
我试过确保 optid 是本地的,但这也不起作用。还有什么可能是错误的吗?
您没有将任何参数传递给您的main函数。如果您希望该函数获得与传递给脚本相同的参数,请将它们与:
main "$@"
Run Code Online (Sandbox Code Playgroud)
代替:
main
Run Code Online (Sandbox Code Playgroud)
也与您的脚本相关:
echo >&2 Unknown optionreturn 1)getopts函数时,最好先将其设置OPTIND为 1,以防getopts之前已调用过(例如在先前调用函数时)。| 归档时间: |
|
| 查看次数: |
3022 次 |
| 最近记录: |