스크립트에서 사용할 명령줄 인수/옵션을 전달하는 가장 이상적인 방법은 무엇입니까? [폐쇄]

스크립트에서 사용할 명령줄 인수/옵션을 전달하는 가장 이상적인 방법은 무엇입니까? [폐쇄]

명령줄에서 사용자 입력을 가져와 이를 쉘 스크립트에서 사용하는 스크립트를 작성해야 합니다. 예를 들어 -u(사용자) -r(번호) 명령줄 옵션을 허용하는 스크립트를 만듭니다 . 나는 Perl 같은 것을 사용하고 싶지 않습니다. 이 모든 작업은 동일한 스크립트에서 수행되어야 합니다. 이 질문의 두 번째 부분은 사용자 이름이나 생성해야 하는 횟수를 전달하지 않고 다른 스크립트와 같은 것을 전달하는 방법입니다.

그런 다음 스크립트는 해당 정보를 사용하여 사용자 bob을 x번 생성하는 배치를 생성합니다. 예를 들어 다음을 입력하면

batch user -u bob -r 5

결국 사용자 계정은 bob1, bob2, bob3, bob4, bob5입니다.

나는 이것을 수행하는 가장 좋은 방법을 모른다.

답변1

getopts명령줄을 구문 분석하는 데 사용할 수 있습니다 . 세부정보를 보고 man bash검색하세요 getopts. 사용 방법의 예는 다음과 같습니다.

#!/bin/bash
#
usage="USAGE: ${0/*\/}  [-r <number>]  [-u <user>]"
while getopts ':r:u:' OPT
do
    case "$OPT" in
        r) thenumber="$OPTARG" ;;
        u) theuser="$OPTARG" ;;
        *) echo "$usage" >&2; exit 1 ;;
    esac
done
shift $((OPTIND -1))

echo "thenumber=${thenumber:-<unset>}"
echo "theuser=${theuser:-<unset>}"
exit 0

관련 정보