Bash에는 " " 옵션을 켜면 -x
(기호 이름은 이라고 생각합니다 xtrace
) Bash가 실행될 때 스크립트의 각 줄을 출력하는 유용한 기능이 있습니다.
나는 이 동작을 달성하는 두 가지 방법을 알고 있습니다.
- 스크립트 자체에서 다음과 같이 말합니다.
set -x
- 명령줄에서
-x
Bash에 옵션을 전달합니다.
환경 변수를 통해 이 옵션을 활성화할 수 있는 방법이 있습니까?
(특히 Bash를 직접 호출하는 것이 아니기 때문에 옵션을 전달할 수 없고 관심 있는 스크립트가 압축된 아카이브 내부에 있으므로 별로 다시 빌드하고 싶지 않습니다. 환경 변수를 설정할 수 있다면 , 프로세스 상속일 수도 있습니다...)
맨페이지에는 에 대한 내용이 나와 있지만
BASHOPTS
, 제가 시도했을 때 Bash는 읽기 전용이라고 말했습니다. (맨페이지에 이 내용을 언급하지 않아서 감사합니다.)이번에도
SHELLOPTS
읽기 전용인 것 같습니다.당신은 선택할 수 있습니다어느 FD와 함께 사용됩니다
BASH_XTRACEFD
. 하지만 먼저 추적을 켜야 합니다.
답변1
env
플래그를 무시하는 데 사용됩니다 readonly
.
env SHELLOPTS=xtrace ./yourscript
또는 상위 쉘에 있는 경우 환경에 복사하여 하위 쉘에 복사할 수 있습니다(감사합니다 set -x
.export SHELLOPTS
조 카사돈테이를 위해):
set -x # set xtrace flag
export SHELLOPTS # copy all options, including xtrace flag, to environment
./yourscript