Bash 스 크 립 트 에 내 장 된 디 버 깅 방법
$ vi servinfo
#!/bin/bash
echo "Hostname: $(hostname)"
echo "Date: $(date)"
echo "Kernel: $(uname -mrs)"
$ chmod +x servinfo
bash-x 로 위 스 크 립 트 를 디 버 깅 합 니 다.Bash 는 줄 마다 스 크 립 트 를 인쇄 한 다음 줄 마다 스 크 립 트 의 실행 결 과 를 출력 합 니 다.
$ bash -x servinfo
++ hostname
+ echo 'Hostname: vpsee'
Hostname: vpsee
++ date
+ echo 'Date: Thu Sep 3 19:33:48 SAST 2009'
Date: Thu Sep 3 19:33:48 SAST 2009
++ uname -mrs
+ echo 'Kernel: Linux 2.6.18-128.4.1.el5 i686'
Kernel: Linux 2.6.18-128.4.1.el5 i686
줄 번 호 를 동시에 인쇄 하려 면 스 크 립 트 시작 에 다음 을 추가 할 수 있 습 니 다.
export PS4='+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]}: '
실행 결 과 는:
$ bash -x servinfo
+ export 'PS4=+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]}: '
+ PS4='+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]}: '
++4:5:: hostname
+4:5:: echo 'Hostname: vpsee'
Hostname: vpsee
++4:6:: date
+4:6:: echo 'Date: Thu Sep 3 19:42:06 SAST 2009'
Date: Thu Sep 3 19:42:06 SAST 2009
++4:7:: uname -mrs
+4:7:: echo 'Kernel: Linux 2.6.18-128.4.1.el5 i686'
Kernel: Linux 2.6.18-128.4.1.el5 i686
그 중 몇 줄 의 스 크 립 트 만 디 버 깅 하려 면 set-x 와 set+x 로 디 버 깅 할 부분 을 포함 시 킬 수 있 습 니 다.
#!/bin/bash
echo "Hostname: $(hostname)"
set -x
echo "Date: $(date)"
set +x
echo "Kernel: $(uname -mrs)"
이 럴 때 스 크 립 트 를 직접 실행 할 수 있 습 니 다.bash-x 를 실행 할 필요 가 없습니다.
$ ./servinfo
Hostname: vpsee
++ date
+ echo 'Date: Thu Sep 3 19:46:53 SAST 2009'
Date: Thu Sep 3 19:46:53 SAST 2009
+ set +x
Kernel: Linux 2.6.18-128.4.1.el5 i686
매우 복잡 한 Bash 스 크 립 트 를 디 버 깅 하려 면 전문 적 인 디 버 깅 도 구 를 사용 하 는 것 을 권장 합 니 다.예 를 들 어bashdb
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
콘솔에서 모든 텍스트를 LINE에 알릴 수있는 자체 제작 명령 준비데이터 분석이나 기계 학습 등으로 장시간의 처리를 콘솔상에서 실행할 때, 처리의 도중 경과나 종료를 LINE 로 통지받을 수 있으면 편리하네요. 그래서 인수로 지정한 텍스트를 LINE 으로 통지해 주는 커멘드를 자작...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.