▲neo 9달전 | parent | favorite | on: GN⁺: 배시 디버깅(wizardzines.com)Hacker News 의견 디버깅을 위한 Bash 스크립트 팁 set -x를 사용할 때 파일명, 함수명, 라인 번호를 표시하는 환경변수 설정이 유용함. Shellcheck 도구를 사용하여 스크립트의 잠재적 문제를 지적받을 것을 권장함. Bash 스크립트를 Rust와 같은 다른 언어로 재작성하는 것이 유지보수에 도움이 됨. ZFSBootMenu에서 사용하는 디버깅 함수 ZFSBootMenu는 코드 베이스에 자체 개발한 zdebug 로깅 함수를 사용함. 디버그 로깅이 활성화된 상태에서 메인 메뉴에서 ctrl-t를 누르면 디버그 정보가 표시됨. Flamegraph 프로파일링 메커니즘을 사용하여 성능 분석 데이터를 시각화할 수 있음. Bash 스택 트레이스 출력 Bash의 caller 내장 함수를 사용하여 스택 트레이스를 출력할 수 있음. 디버깅을 위한 종료 코드 사용 오류 메시지를 stderr로 출력하고 오류 코드로 종료하는 die 함수의 사용 예시 제공. 추가적인 쉘 스크립트 종료 코드와 헬퍼 함수들을 찾을 수 있는 링크 제공. Bash 함수를 많이 사용할 경우 스택 트레이스 생성 가능 Bash 함수를 많이 사용하는 경우 스택 트레이스를 생성하는 방법에 대한 예시 링크 제공. Bash 파이프라인 디버거 중간 출력을 보존하는 Bash 파이프라인 디버거를 만든 경험 공유. Gentoo의 스크립트 유틸리티 Gentoo에서 제공하는 /lib/gentoo/functions.sh를 소싱하여 다양한 헬퍼 메소드를 사용할 수 있음. 이미지의 대체 텍스트에 관한 질문 이미지의 대체 텍스트를 읽을 수 있는 방법에 대한 질문. Bash의 서브쉘 내에서 exit 사용 시 주의점 서브쉘 내에서 exit을 사용하면 서브쉘이 종료되지만 스크립트는 계속 실행됨. 서브쉘을 피하는 방법과 스크립트의 PID를 사용하여 강제 종료하는 방법에 대한 설명.
Hacker News 의견
디버깅을 위한 Bash 스크립트 팁
set -x
를 사용할 때 파일명, 함수명, 라인 번호를 표시하는 환경변수 설정이 유용함.ZFSBootMenu에서 사용하는 디버깅 함수
zdebug
로깅 함수를 사용함.Bash 스택 트레이스 출력
caller
내장 함수를 사용하여 스택 트레이스를 출력할 수 있음.디버깅을 위한 종료 코드 사용
die
함수의 사용 예시 제공.Bash 함수를 많이 사용할 경우 스택 트레이스 생성 가능
Bash 파이프라인 디버거
Gentoo의 스크립트 유틸리티
/lib/gentoo/functions.sh
를 소싱하여 다양한 헬퍼 메소드를 사용할 수 있음.이미지의 대체 텍스트에 관한 질문
Bash의 서브쉘 내에서
exit
사용 시 주의점exit
을 사용하면 서브쉘이 종료되지만 스크립트는 계속 실행됨.