Verifique se algum argumento combina usando helper func

0

Eu tenho isso:

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
}

O que eu estou tentando fazer é criar uma função auxiliar (ql_match_arg) que pode ser usada por outras funções para determinar em qualquer argumento que corresponda a um determinado nome. Neste caso, quero descobrir se o sinalizador --json é passado como qualquer argumento para ql_ls .

O problema que tenho é que ele não está passando por cima de my_array - algo está errado com meu código - ou eu não estou passando a matriz para ql_match_arg corretamente ou algo está errado.

    
por Alexander Mills 20.04.2018 / 09:01

1 resposta

1

The problem I have is that it's not looping over my_array

Com isso:

declare -a my_array=$1

Você está criando uma matriz com apenas um valor: $1 , o argumento primeiro passado ao seu script. Portanto, não há muito a fazer por lá.

Se você quiser todos argumentos, tente:

declare -a my_array=$@

Em vez disso.

    
por 20.04.2018 / 09:07