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

관련 정보