Parâmetros da função bash nomeados [duplicados]

1

Sempre quis saber isso, mas nunca foi totalmente investigado - existe alguma maneira de obter parâmetros nomeados no bash?

Por exemplo, eu tenho isso:

function ql_maybe_fail {
  if [[ "$1" == "true" ]]; then
      echo "quicklock: exiting with 1 since fail flag was set for your 'ql_release_lock' command. "
      exit 1;
  fi
}

é de alguma forma possível convertê-lo para algo como isto:

function ql_maybe_fail (isFail) {
  if [[ "$isFail" == "true" ]]; then
      echo "quicklock: exiting with 1 since fail flag was set for your 'ql_release_lock' command. "
      exit 1;
  fi
}
    
por Alexander Mills 02.03.2018 / 04:18

2 respostas

4

As funções no Bash atualmente não suportam argumentos nomeados pelo usuário.

    
por 02.03.2018 / 05:13
1

Esta solução alternativa pode ajudar, mas não é bem testet:

fun () {
    v1=$1
    v2=$2
    for v in "$v1" "$v2"
    do
       case "$v" in
           name=*) name=${v/*=/};;
           age=*)  age=${v/*=/};;
           *)    echo "unexpected $v, please use name and age" ;;
       esac
    done

    echo "name=$name age=$age"
}

saída:

fun "name=John" "age=22"
name=John age=22
fun "age=22" "name=John"
name=John age=22
    
por 02.03.2018 / 10:57