인수 ‘-v’와 ‘-x’는 bash를 의미하는 것은 무엇입니까? 그러나, man bash무엇 이러한 주장을

나는 다음 shebang과 함께 두 개의 쉘 스크립트를 보았습니다.

#!/bin/bash -x -v 

그러나, man bash무엇 이러한 주장을 설명하지 않습니다 -x-v가 속한 경우, 약자 bash전혀.

그렇다면 그것들 -x-v(그리고 다른 가능한 주장들)은 무엇을 의미합니까?



답변

에서 man bash(예, 그것은 큰 사람 페이지입니다, 일반적으로 Google 검색이 빠릅니다) :

-x 각 간단한 명령 (명령, 대소 문자 명령, 선택 명령 또는 명령의 산술)을 확장 한 후 PS4의 확장 된 값을 표시 한 다음 명령과 해당 확장 인수 또는 관련 단어 목록을 표시합니다.

효과적으로 : 스크립트를 실행하면 해당 스크립트에서 수행 된 모든 작업이 표시됩니다. 따라서 모든 if, 루프 및 명령이 실행됩니다. 디버깅에 매우 유용합니다.

-v 쉘 입력 라인을 읽을 때 인쇄하십시오. 스크립트가 실행될 때 파일을 읽을 때 전체 스크립트를 인쇄합니다. 대화식으로 쉘을 사용하면 Enter 키를 누른 후 각 명령이 표시됩니다.

위의 인용문은의 set내장 명령에 대한 설명에서 인용 한 것입니다. man bash또한 옵션이 set인수 (shebang 행)로 전달 될 수 있음을 설명합니다 .

달리 명시되지 않는 한 옵션은 기본적으로 해제되어 있습니다. 사용 +
하기보다는 -이러한 옵션을 원인으로하는 해제 할 수 있습니다. 쉘 호출에 대한 인수로 옵션을 지정할 수도 있습니다. 현재 옵션 세트는에서 찾을 수 있습니다 $-. 잘못된 옵션이 없으면 반환 상태는 항상 true입니다.


답변

bash 매뉴얼 페이지 이러한 옵션이 실제로 더 자세히 설명되어 있지만 쉽게 간과된다는 것을 암시합니다.

따라서 문제는 실제로 읽어야합니다. bash 매뉴얼 페이지의 OPTIONS 섹션이 불완전합니다. 답은 그것들을 복제하거나 옵션 섹션의 첫 번째 섹션을 강조하는 것입니다.

OPTIONS
   All  of  the  single-character shell options documented in the descrip‐
   tion of the set builtin command can be used as options when  the  shell
   is invoked.  [ ... ]

마지막으로,이 작업이 완료 만들기 위해 : 그들이 어떤 POSIX 쉘의 표준 옵션 때 스크립트의 코드를 표시하기위한 읽기 ( -v) 때 실행 ( -x). stderr에 출력이 나타납니다.


답변