首页 > 代码库 > 调试 shell script 方法
调试 shell script 方法
wade@V1088:~$ cat b.sh
#!/bin/bashdir=`pwd`dir=$dir‘/‘for f in `ls *.png`do echo $dir$fdone
看每一行代码的执行:
wade@V1088:~$ bash -x b.sh++ pwd+ dir=/home/wade+ dir=/home/wade/++ ls chrome_1407299385726.png chrome_1427299385726.png+ for f in ‘`ls *.png`‘+ echo /home/wade/chrome_1407299385726.png/home/wade/chrome_1407299385726.png+ for f in ‘`ls *.png`‘+ echo /home/wade/chrome_1427299385726.png
进一步,看具体执行的代码与行号对应:
wade@V1088:~$ export PS4=‘+${BASH_SOURCE}:${LINENO}:${FUNCNAME[0]}: ‘wade@V1088:~$ bash -x b.sh++b.sh:2:: pwd+b.sh:2:: dir=/home/wade+b.sh:3:: dir=/home/wade/++b.sh:8:: ls chrome_1407299385726.png chrome_1427299385726.png+b.sh:4:: for f in ‘`ls *.png`‘+b.sh:7:: echo /home/wade/chrome_1407299385726.png/home/wade/chrome_1407299385726.png+b.sh:4:: for f in ‘`ls *.png`‘+b.sh:7:: echo /home/wade/chrome_1427299385726.png
指定脚本的部分去跑详细的行号,其余的忽略:
wade@V1088:~$ cat b.sh #!/bin/bashdir=`pwd`dir=$dir‘/‘#this line above won‘t log out set -xfor f in `ls *.png`do echo $dir$fdoneset +x#the follow line won‘t log out echo ‘end‘abc=‘new var‘
运行输出:
wade@V1088:~$ ./b.sh++./b.sh:10:: ls chrome_1407299385726.png chrome_1427299385726.png+./b.sh:6:: for f in ‘`ls *.png`‘+./b.sh:9:: echo /home/wade/chrome_1407299385726.png/home/wade/chrome_1407299385726.png+./b.sh:6:: for f in ‘`ls *.png`‘+./b.sh:9:: echo /home/wade/chrome_1427299385726.png/home/wade/chrome_1427299385726.png+./b.sh:11:: set +xend
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。