- bash/sh 한줄씩 실행결과 확인
- bash 쉘스크립트 디버깅
- bash/sh 스크립트 실행 명령어 추적
- sh -x
방법
각 명령어 표시
sh -x 스크립트파일명.sh
명령어+부가정보 표시
export PS4='+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]}: '
sh -x 스크립트파일명.sh
- → 파일명, 행번호, 항수명도 출력됨
실습 1: 일반 예시
[root@zetawiki ~]# cat hello.sh
#!/bin/sh
echo hello
echo world
[root@zetawiki ~]# sh -x hello.sh
+ echo hello
hello
+ echo world
world
[root@zetawiki ~]# export PS4='+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]}: '
[root@zetawiki ~]# sh -x hello.sh
+hello.sh:2:: echo hello
hello
+hello.sh:3:: echo world
world
실습 2: 함수 예시
[root@zetawiki ~]# cat sayhello.sh
#!/bin/sh
sayhello () {
echo hello
echo world
}
sayhello
[root@zetawiki ~]# export PS4='+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]}: '
[root@zetawiki ~]# sh -x sayhello.sh
+sayhello.sh:6:: sayhello
+sayhello.sh:3:sayhello: echo hello
hello
+sayhello.sh:4:sayhello: echo world
world