위치 인수( 등)와 옵션(및/또는 매개변수)은 모두 명령 $1
바로 $2
뒤에 작성됩니다. 그렇다면 이들을 구별하는 방법을 설명하는 정의나 문구는 무엇입니까?
즉, 차이점을 공식적으로 설명하는 방법은 다음과 같습니다.위치 매개변수그리고옵션(그리고/또는 논쟁)?
답변1
옵션(종종 "플래그" 또는 "스위치"라고도 함)은 명령줄 인수의 한 유형입니다. 명령줄 인수는 유틸리티나 셸 함수의 명령줄에 표시되는 단일 단어(또는 따옴표로 묶인 문자열)입니다.
특정 수의 인수를 사용하여 쉘 스크립트 또는 쉘 함수를 호출하면 각 개별 인수가 스크립트 또는 함수 내에서 위치 인수로 사용 가능해집니다.
용어:
"인수"는 다음과 같습니다.
- "옵션"( 와 유사
-a
하지만 유틸리티가 이를 옵션으로 인식하는 경우에만 해당) - "옵션 인수"(예
foo
: 인수가-a foo
있는-a
옵션) 또는 - "피연산자"(옵션이 아닌 매개변수 또는 if
foo
와 같은 옵션 매개변수도 아님 )-a foo
-a
아니요옵션 매개변수를 사용합니다).
위의 모든 것의 실제 예(GNU 사용 mv
):
mv -t targetdir -f file1 file2
- 매개 변수:
-t
,targetdir
,-f
및file1
file2
- 옵션:
-t
및-f
- 옵션 매개변수:
targetdir
- 피연산자:
file1
및file2
.
~에서POSIX 정의:
쉘 명령 언어에서 [인수는] 유틸리티에 전달되는 인수로, exec 함수 중 하나에 의해 생성된 argv 배열의 단일 문자열에 해당합니다. 인수는 명령 이름 뒤에 오는 옵션, 옵션 매개변수 또는 피연산자 중 하나입니다.
[옵션은] 명령에 대한 인수로, 일반적으로 유틸리티의 기본 동작에 대한 변경 사항을 지정하는 데 사용됩니다.
[옵션 인수는] 일부 옵션 뒤에 오는 인수입니다. 어떤 경우에는 옵션 인수가 옵션과 동일한 인수 문자열에 포함되며 대부분의 경우 다음 인수입니다.
[피연산자는] 명령에 대한 인수로, 처리를 완료하는 데 필요한 정보를 유틸리티에 제공하는 개체로 자주 사용됩니다. 피연산자는 일반적으로 명령줄의 옵션을 따릅니다.
쉘 스크립트 또는 쉘 함수의 위치 인수는 인수가 옵션, 옵션 인수 또는 피연산자인지에 관계없이 스크립트 또는 함수의 명령행에 제공된 인수입니다.
위치 매개변수는 다음을 사용하여 설정할 수도 있습니다.
set -- something "something else" bumblebees
그러면 $1
, $2
및 $3
가 세 개의 문자열로 설정되고 다른 위치 인수가 모두 지워집니다.
이 경우 위치 매개변수는 유틸리티 명령줄에 전달된 매개변수와 더 이상 관련이 없습니다.
또한보십시오: