편집을 취소할 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 게시해주세요.
최신판 | 당신의 편집 | ||
1번째 줄: | 1번째 줄: | ||
;bash 쉘스크립트 디버깅 | ;bash 쉘스크립트 디버깅 | ||
;bash/sh | ;bash/sh 디버깅 | ||
;sh -x | ;sh -x | ||
==방법== | ==방법== | ||
;각 명령어 표시 | |||
< | <source lang='bash'> | ||
sh -x 스크립트파일명.sh | sh -x 스크립트파일명.sh | ||
</ | </source> | ||
;명령어+부가정보 표시 | |||
< | <source lang='bash'> | ||
export PS4='+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]}: ' | export PS4='+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]}: ' | ||
sh -x 스크립트파일명.sh | sh -x 스크립트파일명.sh | ||
</ | </source> | ||
==실습 1 | ==실습 1== | ||
< | <source lang='dos'> | ||
[root@ | [root@jmnote ~]# cat hello.sh | ||
#!/bin/sh | #!/bin/sh | ||
echo hello | echo hello | ||
echo world | echo world | ||
[root@jmnote ~]# sh -x hello.sh | |||
[root@ | |||
+ echo hello | + echo hello | ||
hello | hello | ||
+ echo world | + echo world | ||
world | world | ||
</ | </source> | ||
< | |||
[root@ | ==실습 2== | ||
[root@ | <source lang='dos'> | ||
[root@jmnote ~]# export PS4='+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]}: ' | |||
[root@jmnote ~]# sh -x hello.sh | |||
+hello.sh:2:: echo hello | +hello.sh:2:: echo hello | ||
hello | hello | ||
+hello.sh:3:: echo world | +hello.sh:3:: echo world | ||
world | world | ||
</ | </source> | ||
==실습 | ==실습 3== | ||
< | <source lang='dos'> | ||
[root@ | [root@jmnote ~]# cat sayhello.sh | ||
#!/bin/sh | #!/bin/sh | ||
sayhello () { | sayhello () { | ||
49번째 줄: | 47번째 줄: | ||
} | } | ||
sayhello | sayhello | ||
[root@jmnote ~]# sh -x sayhello.sh | |||
[root@ | |||
+sayhello.sh:6:: sayhello | +sayhello.sh:6:: sayhello | ||
+sayhello.sh:3:sayhello: echo hello | +sayhello.sh:3:sayhello: echo hello | ||
58번째 줄: | 53번째 줄: | ||
+sayhello.sh:4:sayhello: echo world | +sayhello.sh:4:sayhello: echo world | ||
world | world | ||
</ | </source> | ||
==같이 보기== | ==같이 보기== | ||
*[[$PS4]] | |||
* [[$PS4]] | |||
[[분류: bash]] | [[분류: bash]] |