曲径通幽论坛

标题: 脚本调试 [打印本页]

作者: beyes    时间: 2009-2-1 23:08
标题: 脚本调试
   脚本中,当有一个错误发生时,shell 在正常情况下打印出包含错误那行的行号。如果错误并不是立即在表面上呈现出来的,那么可以通过简单地在 shell 里增加额外的 echo指令来显示变量的内容以及测试代码片段。

跟踪更多的错误的主要途径是设置不同的 shell 选项。这里,可以在调用 shell 后使用命令行选项或者使用 set 命令。以下汇总这些选项:
-----------------------------------------------------------------
命令行选项       set 命令选项                描述

sh -n <script>    set -o noexec      仅检查语法错误,不执行命令
                 set -n

sh -v <script>    set -o verbose      在运行之前 echoe 命令
                 set -v

sh -x <script>    set -o xtrace      在处理行上处理后 echo 命令
                 set -x

sh -u <script>    set -o nounset     当使用一个未定义变量则给出错误信息
                 set -u
-----------------------------------------------------------------------

可以用 -o 设置 set 选项标志为开, +o 为关。
可以使用 xtrace 选项来达到一个简单的执行状况跟踪。
对于初始化检查,可以使用命令行选项,但对于精炼的debug,可以在脚本中问题出现代码的附近处设置 xtrace 标志。
执行跟踪使 shell 在执行此行前,打印出每一行带有变量扩展的脚本。

使用一下命令打开 xtrace 开:
set -o xtrace

关上 xtrace :
set +o xtrace




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2