我有这个:
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=$@
反而。