수색…


"-x"로 bash 스크립트 디버깅하기

실행 된 행의 디버그 출력을 사용하려면 "-x"를 사용하십시오. 전체 세션 또는 스크립트에서 실행되거나 스크립트 내에서 프로그래밍 방식으로 실행될 수 있습니다.

디버그 출력이 활성화 된 스크립트를 실행합니다.

$ bash -x myscript.sh

또는

$ bash --debug myscript.sh

bash 스크립트 내에서 디버깅을 켭니다. 스크립트가 종료 될 때 디버그 출력이 자동으로 재설정되지만 선택적으로 다시 켜질 수 있습니다.

#!/bin/bash
set -x   # Enable debugging
# some code here
set +x   # Disable debugging output. 

"-n"을 사용하여 스크립트 구문 검사

-n 플래그를 사용하면 스크립트를 실행하지 않고 스크립트의 구문을 확인할 수 있습니다.

~> $ bash -n testscript.sh
testscript.sh: line 128: unexpected EOF while looking for matching `"'
testscript.sh: line 130: syntax error: unexpected end of file

usigh bashdb 디버깅

Bashdb는 라인이나 함수에서 중단 점을 설정하고, 변수의 내용을 인쇄하고, 스크립트 실행을 다시 시작하는 등의 작업을 수행 할 수 있다는 점에서 gdb와 유사한 유틸리티입니다.

일반적으로 패키지 관리자를 통해 설치할 수 있습니다 (예 : Fedora).

sudo dnf install bashdb 

또는 홈페이지 에서 가져 오십시오. 그런 다음 스크립트로 매개 변수로 실행할 수 있습니다.

bashdb <YOUR SCRIPT>

다음은 시작하기위한 몇 가지 명령입니다.

l - show local lines, press l again to scroll down
s - step to next line 
print $VAR - echo out content of variable 
restart - reruns bashscript, it re-loads it prior to execution.
eval - evaluate some custom command, ex: eval echo hi

b <line num> set breakpoint on some line 
c - continue till some breakpoint 
i b - info on break points 
d <line #> - delete breakpoint at line #

shell - launch a sub-shell in the middle of execution, this is handy for manipulating variables

자세한 내용은 설명서를 참조하십시오 . http://www.rodericksmith.plus.com/outlines/manuals/bashdbOutline.html

또한보십시오 homepage :
http://bashdb.sourceforge.net/



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow