Como eu adicionaria $ OPTARGs de um arg a um array

1

Então, estou tentando adicionar valores de um escolherg para uma matriz. Eu tenho:

arrays=()
while getopts a: args; do
  case $args in
    a) arrays+=$OPTARG;;
  esac
done
echo $arrays[@]

Quando executo o script, ./script -a foo bar, recebo retorno com

foo

Alguma ideia de como adicionar mais valores?

    
por Harry 16.11.2013 / 22:14

1 resposta

1

$OPTARGS detém a próxima palavra . Se você quiser vários valores

  • especifique -a value várias vezes como @scott sugere
  • forneça uma string com várias palavras entre aspas na linha de comando:

    ./script -a "foo bar baz"
    

    então, no script

    array+=($OPTARG)   # OPTARG is **unquoted**
    

    Verificando se adiciona as palavras separadamente

    a=(one two three)
    value="four five six"
    a+=($value)
    echo ${#a[@]}        # prints 6
    
por 16.11.2013 / 22:54