Argumentos de script de eco da função

1

Eu preciso obter argumentos de script dentro da função com argumentos.

./myscript 1 2 3

function_name () {
   if [  == 3 ]; then
        # I need the  in the following echo to be the script argument, not the function argument
        echo   
   fi
}

function_name $#
    
por Dobz 24.06.2014 / 10:55

1 resposta

3

Isso é bem interessante. O problema é que o escopo da função está substituindo o do script. Não consigo ver uma maneira simples de contornar isso.

No entanto, você pode simplesmente passar as variáveis como argumentos (para a função):

function_name () {
   [[ $# == 3 ]] && echo   
}

function_name $@

Ou você pode:

  • Passe $# $@ , verifique e echo
  • Passe $# $@ , verifique , shift e, em seguida, echo
  • Armazene $@ como uma variável no nível do script e acesse-a na função
por Oli 24.06.2014 / 11:09