내가 달릴 때
user@hostname:~$ su -- root -z
알겠어요
bash: -z: invalid option
Usage: bash [GNU long option] [option] ...
...
위의 내용은 예상되는 동작입니다.
내가 달릴 때
user@hostname:~$ su -l -- root -z
알겠어요
-su: -z: invalid option
Usage: -su [GNU long option] [option] ...
...
-z
어떤 명령이 옵션을 구문 분석하는지 보여주기 위해 잘못된 옵션을 사용하고 있습니다 .
이 행동은 나를 끝없이 괴롭힌다. su
옵션을 선언한 후에도 계속해서 옵션을 검색하세요. 내가 뭔가를 놓치고 있는 걸까요? 이것은 버그인가요, 아니면 단지 끔찍한 디자인인가요?
답변1
-su: -z: invalid option Usage: -su [GNU long option] [option] ... ...
이것은 su의 오류 출력이 아니라 Bash의 오류 출력입니다. 계속 인용하면 다음 줄에서 --rcfile
분명히 속하지 않는 스크립트 파일(예: 다음 options )을 언급합니다 su
. 또한 의 출력과 비교할 수도 있습니다 su -z
.다른실수.
당신이 달리면
su -l -- root --version
매개변수가 전달되고 Bash가 해당 버전을 보고하는 것을 볼 수 있습니다.
Bash는 로그인 셸로 호출될 때 0번째 인수에 포함되어 있기 때문에 자신을 -su
(note ) 로 보고합니다 . 자체 때문이 아닙니다.-
su
su
-su
su
설명서에는 다음 과 같이 명시되어 있습니다.
--
인수를 사용하여 쉘에 제공된 인수와 su 옵션을 구분할 수 있습니다.
여기서는 다음과 같은 일이 발생합니다. 매개변수가 셸로 전달됩니다. 생략하면 오류가 출력 --
됩니다.su
su: invalid option -- 'z'
Usage: su [options] [LOGIN]
...
대신에.