As funções no Bash atualmente não suportam argumentos nomeados pelo usuário.
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
}
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
Tags bash shell-script