Shell_调试

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/du1055669885/article/details/82763486

(1)静态检查语法错误:

sh -n 脚本名;

(2)动态运行逻辑错误:

【2.1】sh -c '语句',运行一小句;

【2.2】sh -v 脚本名,运行脚本,输出运行的,原始语句;

【2.3】sh -x 脚本名,运行脚本,输出运行的,语句,并替换符号变量;

            使用方式:

1).在命令行提供参数:$ sh -x script.sh

2).脚本开头提供参数:#!/bin/sh -x

3).在脚本中用set命令启用or禁用参数:

其中set -x表启用,set +x表禁用

调试输出:

stdin上面输出+开始的shell脚本语句;

其中,多个加号的情况,是在该行中被调用的层次,例如:

脚本:vara=110

           varb=`echo ${vara}`

+ vara=110

++ echo 110

+ varb=110

备注解释:

每行,行首显示+,其值为环境变量$PS4;

为sh -x追加行号显示:

export PS4='+{$LINENO:${FUNCNAME[0]}} '

$LINENO,代表shell脚本的当前行号

$FUNCNAME,函数的名字,包含了整个调用链上所有的函数的名字,[0]当前函数,[1]上个调用函数...

(3)使用工具调试:

bashdb,可以单步,断点跟踪。

猜你喜欢

转载自blog.csdn.net/du1055669885/article/details/82763486