!["옵션 처리 후 남은 인수가 없는 경우"를 어떻게 이해합니까?](https://linux55.com/image/130940/%22%EC%98%B5%EC%85%98%20%EC%B2%98%EB%A6%AC%20%ED%9B%84%20%EB%82%A8%EC%9D%80%20%EC%9D%B8%EC%88%98%EA%B0%80%20%EC%97%86%EB%8A%94%20%EA%B2%BD%EC%9A%B0%22%EB%A5%BC%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%9D%B4%ED%95%B4%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
Basy 매뉴얼에는 다음 명령에 대해 나와 있습니다 bash
.
-에스
이 옵션이 있는 경우 또는옵션 처리 후 남은 인수가 없는 경우를 누른 다음 표준 입력에서 명령을 읽습니다. 이 옵션을 사용하면 대화형 쉘을 호출할 때 위치 매개변수를 설정할 수 있습니다.
"옵션 처리 후 남은 매개변수가 없는 경우"를 어떻게 이해하는지 알고 싶습니다.
예를 들어, bash -c "echo hello"
명령은 표준 입력에서 읽히지 않으며, "echo hello"
옵션에 대한 인수 -c
이고 옵션 처리가 옵션과 해당 인수를 처리하기 때문에 "옵션 처리 후 인수가 남지 않습니다".
감사해요.
답변1
Bash 매뉴얼에서 문장 또는 이 경우 문장의 일부를 가져와서 그 자체로 의미가 있다고 기대할 수는 없습니다. 맨페이지의 "ARGUMENTS" 섹션이나 마지막 단락을 읽어야 합니다."Bash 호출" 섹션:
옵션 처리 후에 인수가 있고 옵션
-c
이나-s
옵션이 모두 제공되지 않은 경우 첫 번째 인수는 쉘 명령이 포함된 파일의 이름으로 간주됩니다(참조:쉘 스크립트). Bash가 이런 방식으로 호출되면$0
위치 인수는 파일 이름과 나머지 인수로 설정됩니다. Bash는 이 파일에서 명령을 읽고 실행한 다음 종료됩니다. Bash의 종료 상태는 스크립트에서 실행된 마지막 명령의 종료 상태입니다. 명령이 실행되지 않으면 종료 상태는 0입니다.
-c
"옵션 처리 후 인수가 남지 않은 경우"는 그 반대이므로 그 효과는 및 옵션의 효과 와 함께 이해해야 합니다 -s
. 을 지정하면 -c
우선순위가 적용됩니다.
옵션이 아닌 첫 번째 인수에서 명령을 읽고 실행합니다.명령 문자열을 누른 다음 종료합니다. 나중에 논란이 된다면명령 문자열, 첫 번째 인수는 위치 인수에 할당되고
$0
나머지 인수는 위치 인수에 할당됩니다. 할당은$0
경고 및 오류 메시지에 사용되는 셸의 이름을 설정합니다.
그렇다면 "옵션 처리 후 남은 인수가 없는 경우"를 어떻게 이해해야 합니까?
- 쉘이 인수와 입력(특히
-c
) 을 처리하는 방법을 결정하는-s
효과를 포함한 모든 옵션을 처리합니다. - 완료한 후에도 셸의 동작이 아직 수정되지 않았고 인수가 없으면...