내 함수에 대한 매개변수 이름을 지정하고 싶습니다.
명령줄에서 호출된 기본 함수에만 GETOPTS를 사용하는 것 같습니다.
파일에 여러 함수가 있는 경우 다른 함수를 호출할 때 동일한 유형의 기능(이름이 지정된 매개변수)을 얻을 수 있는 방법이 있습니까?
예를 들어 다음은 작동하지 않는 것 같습니다.
$ cat getops_example.sh
function usage {
echo 'here'
}
function my_test {
while getopts ":s:p:" o; do
case "${o}" in
s)
s=${OPTARG}
((s == 45 || s == 90)) || usage
;;
p)
p=${OPTARG}
;;
*)
usage
;;
esac
done
}
my_test 11 20
echo "s was $s"
echo "p was $p"
$
$ ./getops_example.sh -s 10 -p 20
s was
p was
답변1
프로그램에 매개변수를 전달했지만 프로그램 내에서 my_test
옵션 플래그 -s
및 -p
해당 옵션 없이 함수를 호출하기 때문에 프로그램을 실행할 수 없습니다. 실제 필요에 따라 사용하십시오.
my_test -s 11 -p 20
또는 외부에서 매개변수를 전달하고 함수를 호출하세요.
my_test "$@"