답변:
bash -x script
또는
set -x
스크립트에서.
으로 옵션을 다시 설정 해제 할 수 있습니다 set +x
. 몇 가지 명령에 대해서만 수행하려면 서브 쉘을 사용할 수 있습니다.`(set -x; command1; command; ...;)
PS4
하면의 프롬프트를 조정할 수 있습니다 -x
. 예 : PS4='Line $LINENO @ $(date +%s.%N): ' bash -x script
( date
하지만, 그것을 느려집니다)
이것들은 또한 작동합니다 :
set -v
또는
#!/bin/bash -v
그러나 -v는 각 스크립트 행 앞에 PS4 문자열을 인쇄하지 않으며 "for"문의 단계 (예 :)를 개별적으로 추적하지 않습니다. -x는 주석을 에코하지 않지만 -x는 주석을 에코하지 않습니다.
-v를 사용하는 출력의 예는 다음과 같습니다.
#!/bin/bash -v
# this is a comment
for i in {1..4}
do
echo -n $i
done
1234echo
echo hello
hello
-x를 사용한 동일한 스크립트의 결과는 다음과 같습니다.
+ for i in '{1..4}'
+ echo -n 1
1+ for i in '{1..4}'
+ echo -n 2
2+ for i in '{1..4}'
+ echo -n 3
3+ for i in '{1..4}'
+ echo -n 4
4+ echo
+ echo hello
hello
-v와 -x의 차이점을 강조하기 위해 "echo -n"을 포함 시켰습니다. 또한 -v는 "-o verbose"와 동일하지만 후자는 shebang의 일부로 작동하지 않는 것 같습니다.
처럼 간다
language -x script
언어 = 파이썬, 펄, bash -x = 연산자 스크립트 = 파일 이름
도움이되기를 바랍니다.
-x
파이썬에서 에코와 아무 관련이 없습니다
set
옵션이 무엇인지 찾는 사람 은이 매뉴얼 페이지에서 찾을 수 있습니다 .