항상 궁금했지만 완전히 조사한 적은 없습니다. 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