いつも気になりましたが、完全に調査したことはありません。 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