스크립트에서 입력을 받고 매개변수가 하나만 있는지 확인하세요.

스크립트에서 입력을 받고 매개변수가 하나만 있는지 확인하세요.

저는 현재 기본적으로 다양한 정규 표현식과 함께 grep을 사용하는 방법을 배우는 스크립트가 있는 과제를 진행하고 있습니다.

파일을 입력으로 제공한 다음 해당 파일을 기반으로 스크립트가 실행되는 첫 번째 부분을 제외하고는 스크립트를 작성했습니다.

입력 프롬프트와 읽기 명령, grep 명령이 있습니다. 모든 것이 잘 작동합니다. 매개변수가 1개만 주어지면 스크립트를 실행할 것이라고 생각되는 if 문을 구현하면 됩니다. - 할당은 1개의 인수만 제공되는 경우에만 스크립트가 실행되어야 함을 나타냅니다. 그렇지 않으면 오류 메시지가 표시되어야 합니다.

감사해요,

답변1

스크립트 내의 $#위치 매개변수 수가 확장됩니다. 이를 사용하여 올바른 수의 옵션이 전달되었는지 확인하고 그렇지 않은 경우 즉시 종료할 수 있습니다.

#!/bin/sh

if [ "$#" -ne 1 ]; then
    printf 'ERROR! You must provide one and only one argument!\n' >&2
    exit 1
fi

이에 대한 내용은 다음에서 읽을 수 있습니다.

2.5.1 위치 매개변수

조건부 구조인 경우

2.7.2 출력 리디렉션

관련 정보