bash – 为什么“getopts”在一个函数中无法工作?

前端之家收集整理的这篇文章主要介绍了bash – 为什么“getopts”在一个函数中无法工作?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
function readArgs() {
    while getopts "i:o:p:s:l:m" OPTION; do
        case "$OPTION" in
            i)
                input="$OPTARG"
                ;;
            o)
                output="$OPTARG"
                ;;
            ...
        esac
    done
}

readArgs

if [[ -z "$input" ]]; then
    echo "Not set!"
fi

这总是给我没有设置!但是如果我注释掉行的函数readArgs(){,}和readArgs,它可以工作.为什么?

也,

input="$OPTARG"
echo "$input"
;;

不行

getopts正在将参数解析为readArgs函数,而且您没有给该函数任何参数.

尝试:

readArgs "$@"

猜你在找的Bash相关文章