위치 매개변수와 옵션을 어떻게 구별하나요?

위치 매개변수와 옵션을 어떻게 구별하나요?

위치 인수( 등)와 옵션(및/또는 매개변수)은 모두 명령 $1바로 $2뒤에 작성됩니다. 그렇다면 이들을 구별하는 방법을 설명하는 정의나 문구는 무엇입니까?

즉, 차이점을 공식적으로 설명하는 방법은 다음과 같습니다.위치 매개변수그리고옵션(그리고/또는 논쟁)?

답변1

옵션(종종 "플래그" 또는 "스위치"라고도 함)은 명령줄 인수의 한 유형입니다. 명령줄 인수는 유틸리티나 셸 함수의 명령줄에 표시되는 단일 단어(또는 따옴표로 묶인 문자열)입니다.

특정 수의 인수를 사용하여 쉘 스크립트 또는 쉘 함수를 호출하면 각 개별 인수가 스크립트 또는 함수 내에서 위치 인수로 사용 가능해집니다.

용어:

"인수"는 다음과 같습니다.

  • "옵션"( 와 유사 -a하지만 유틸리티가 이를 옵션으로 인식하는 경우에만 해당)
  • "옵션 인수"(예 foo: 인수가 -a foo있는 -a옵션) 또는
  • "피연산자"(옵션이 아닌 매개변수 또는 if foo와 같은 옵션 매개변수도 아님 )-a foo-a아니요옵션 매개변수를 사용합니다).

위의 모든 것의 실제 예(GNU 사용 mv):

mv -t targetdir -f file1 file2
  • 매개 변수: -t, targetdir, -ffile1file2
  • 옵션: -t-f
  • 옵션 매개변수:targetdir
  • 피연산자: file1file2.

~에서POSIX 정의:

쉘 명령 언어에서 [인수는] 유틸리티에 전달되는 인수로, exec 함수 중 하나에 의해 생성된 argv 배열의 단일 문자열에 해당합니다. 인수는 명령 이름 뒤에 오는 옵션, 옵션 매개변수 또는 피연산자 중 하나입니다.

[옵션은] 명령에 대한 인수로, 일반적으로 유틸리티의 기본 동작에 대한 변경 사항을 지정하는 데 사용됩니다.

[옵션 인수는] 일부 옵션 뒤에 오는 인수입니다. 어떤 경우에는 옵션 인수가 옵션과 동일한 인수 문자열에 포함되며 대부분의 경우 다음 인수입니다.

[피연산자는] 명령에 대한 인수로, 처리를 완료하는 데 필요한 정보를 유틸리티에 제공하는 개체로 자주 사용됩니다. 피연산자는 일반적으로 명령줄의 옵션을 따릅니다.

쉘 스크립트 또는 쉘 함수의 위치 인수는 인수가 옵션, 옵션 인수 또는 피연산자인지에 관계없이 스크립트 또는 함수의 명령행에 제공된 인수입니다.

위치 매개변수는 다음을 사용하여 설정할 수도 있습니다.

set -- something "something else" bumblebees

그러면 $1, $2$3가 세 개의 문자열로 설정되고 다른 위치 인수가 모두 지워집니다.

이 경우 위치 매개변수는 유틸리티 명령줄에 전달된 매개변수와 더 이상 관련이 없습니다.

또한보십시오:

관련 정보