linux的shell脚本的调试方法

前言

被问及bash shell的调试方法问题,写了10多年的各种脚本,还真被问到了。以往的打印信息和输出log文件的搞法,对于一些linux后台开发使用到的复杂脚本调试,确实是不够的。有点糗!

已存在的方法

Shell脚本调试选项

Shell本身提供一些调试方法选项:

  • -n,读一遍脚本中的命令但不执行,用于检查脚本中的语法错误。
  • -v,一边执行脚本,一边将执行过的脚本命令打印到标准输出。
  • -x,提供跟踪执行信息,将执行的每一条命令和结果依次打印出来。

使用这些选项有三种方法(注意:避免几种调试选项混用)

  • 1.在命令行提供参数:$sh -x script.sh
  • 2.脚本开头提供参数:#!/bin/sh -x
  • 3.在脚本中用set命令启用or禁用参数:其中set -x表示启用,set +x表示禁用。

set命令的详细说明

  • http://man.linuxde.net/set
  • https://www.runoob.com/linux/linux-comm-set.html
回到顶部

ShellCheck

  • http://www.shellcheck.net/
  • 是一个Shell脚本分析工具,可以为bash/sh shell脚本提出警告和建议。
  • GitHub:https://github.com/koalaman/shellcheck
回到顶部

ExplainShell

  • https://www.explainshell.com/
  • write down a command-line to see the help text that matches each argument
回到顶部

BASH Debugger

  • 主页:http://bashdb.sourceforge.net/
  • 下载地址:https://sourceforge.net/projects/bashdb/files/
  • 使用手册:http://bashdb.sourceforge.net/bashdb-man.html

借助第三方工具bashd可以更加精细地调试Shell脚本。具有断点、单步执行、观察变量等功能。
下载时需根据所使用的bash版本选择相应的bashdb,否则会提示因为版本不符合而无法安装。

  • 查看bash版本:bash --version
  • 典型用法:bashdb --debug script.sh
回到顶部

参考信息

  • Shell脚本调试技术
  • 如何在Linux中启用Shell脚本的调试模式
  • shell bashdb调试

Action is the antidote to despair!

欢迎转载和引用,但请在明显处保留原文链接和原作者信息!
本博客内容多为个人工作与学习的记录,少部分内容来自于网络并略有修改,已尽力标明原文链接和转载说明。如有冒犯,即刻删除!

文当无敷衍,落笔求简洁,以所舍,求所获,有所依,方所成。
 
引用自: https://www.cnblogs.com/anliven/p/6032081.html

你可能感兴趣的:(debug调试,linux,shell)