이 명령줄에는 몇 개의 매개변수가 있습니까?
[me@localhost]$ ls -isw 40 /usr
어떤 사람들은 명령이 아니라 스위치에 대한 인수이기 /usr
때문에 하나만 있다고 말하고, 어떤 사람들은 명령과 스위치를 제외한 모든 것이 인수로 처리되어 "명령에 대한 인수" 또는 "스위치에 대한 인수"를 요청하기 때문에 두 개라고 말합니다. .40
w
어느 것이 맞나요?
답변1
-isw
, 40
및 의 세 가지 매개변수가 있습니다 /usr
.
명령줄 인수를 구문 분석할 때 GNU ls
유틸리티는 세 가지를 볼 수 있습니다.옵션: -i
, -s
, 그리고-w
이것은40
옵션 매개변수옵션 에 -w
.
마지막으로 /usr
하나 있어요피연산자(옵션이나 옵션 매개변수가 아님)
한 가지 주장은
쉘 명령 언어에서 유틸리티에 전달된 인수는 함수
argv
중 하나에 의해 생성된 배열의 단일 문자열 과 동일합니다exec
. 인수는 명령 이름 뒤에 오는 옵션, 옵션 매개변수 또는 피연산자 중 하나입니다.
ls -isv 40 /usr
이것은 이것이 세 개의 매개변수를 가진 명령이라는 것을 알려줍니다 . ls
자체적으로 작성한 쉘 스크립트라면 스크립트 $#
에 있는 특수 변수의 값은 3
스크립트가 특정 방식으로 호출될 때의 값이 됩니다.
한 가지 옵션은
일반적으로 유틸리티의 기본 동작에 대한 변경 사항을 지정하는 데 사용되는 명령에 대한 인수입니다.
취하지 말아야 할 옵션옵션 매개변수다음 옵션과 함께 단일 인수로 작성할 수 있습니다. 즉, -i -s -w 40
로 작성할 수 있습니다 -isw 40
. 이 명령 ls -i -s -w 40 /usr
에는 5개의 매개변수가 있습니다.
옵션 매개변수는 다음과 같습니다.
특정 옵션을 따르는 매개변수. 어떤 경우에는 옵션 인수가 옵션과 동일한 인수 문자열에 포함되며 대부분의 경우 다음 인수입니다.
따라서 -w 40
다음과 같이 작성할 수 있습니다 -w40
. 이 경우 명령에는 ls -isw40 /usr
두 개의 개별 매개변수만 포함됩니다.
하나의 피연산자는
일반적으로 처리를 완료하는 데 필요한 정보를 유틸리티에 제공하는 개체로 사용되는 명령에 대한 인수입니다. 피연산자는 일반적으로 명령줄의 옵션을 따릅니다.
여기서의 정의는 다음과 같습니다.POSIX.
ls
또한 유틸리티의 의미가 완전히 다른 경우 다음이 true일 수 있습니다. 는 sw
option의 옵션 인수일 수 있고 -i
(또는 w
의 옵션 인수일 수 있음 -s
) 및 40
둘 다 /usr
피연산자일 수 있습니다.