`ls -isw 40 /usr`에는 몇 개의 매개변수가 있습니까?

`ls -isw 40 /usr`에는 몇 개의 매개변수가 있습니까?

이 명령줄에는 몇 개의 매개변수가 있습니까?

[me@localhost]$ ls -isw 40 /usr

어떤 사람들은 명령이 아니라 스위치에 대한 인수이기 /usr때문에 하나만 있다고 말하고, 어떤 사람들은 명령과 스위치를 제외한 모든 것이 인수로 처리되어 "명령에 대한 인수" 또는 "스위치에 대한 인수"를 요청하기 때문에 두 개라고 말합니다. .40w

어느 것이 맞나요?

답변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일 수 있습니다. 는 swoption의 옵션 인수일 수 있고 -i(또는 w의 옵션 인수일 수 있음 -s) 및 40둘 다 /usr피연산자일 수 있습니다.

관련 정보