使用辅助函数检查是否有任何参数匹配

使用辅助函数检查是否有任何参数匹配

我有这个:

ql_match_arg(){
    declare -a my_array=$1
    for var in "${my_array[@]}"; do
        if [[ "$var" == "$2" ]]; then
          return 0;
        fi
    done
}


ql_ls () {
   local my_array=( "$@" ); ql_json=$(ql_match_arg my_array[@] '--json' && echo "yes")
   ql_pid="$$" ql_json="$ql_json" ql_node_ls_all
}

我想做的是创建一个辅助函数(ql_match_arg),其他函数可以使用它来确定任何参数与给定名称的匹配。在本例中,我想查明 --json 标志是否作为任何参数传递给ql_ls.

我遇到的问题是它没有在 my_array 上循环 - 我的代码有问题 - 要么我没有ql_match_arg正确传递数组,要么有其他问题。

答案1

我遇到的问题是它没有循环遍历 my_array

有了这个:

declare -a my_array=$1

您正在创建一个数组值:$1第一的参数传递给你的脚本。所以那里没有太多可以循环的地方。

如果你想全部争论,尝试:

declare -a my_array=$@

反而。

相关内容