bash 関数パラメータの命名

bash 関数パラメータの命名

いつも気になりましたが、完全に調査したことはありません。 bashで名前付きパラメータを取得する方法はありますか?

たとえば、次のようになります。

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
}

次のように変換することは可能ですか?

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
}

答え1

Bashの関数は現在、ユーザー名引数をサポートしていません。

答え2

この回避策は役に立ちますが、テストするのは簡単ではありません。

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"
}

出力:

fun "name=John" "age=22"
name=John age=22
fun "age=22" "name=John"
name=John age=22

関連情報