首页 > 系统相关 >linux shell 脚本调试技巧

linux shell 脚本调试技巧

时间:2024-04-24 11:02:09浏览次数:22  
标签:脚本 shell echo set 调试 linux bash

本文分享自天翼云开发者社区《linux shell 脚本调试技巧》,作者:g****n

1.bash -x 加脚本

这是最常用的调试手段,终端会打印出,脚本执行过程中的每一个命令。

a. 查看脚本流程有无错误

b.查看变量值有无错误

c.查看退出位置是否符合预期

例如脚本 small_test.sh 

#!/bin/bash

echo 1echo 2echo 3

shell中执行   

bash -x small_test.sh

执行效果,会打印出,每一行代码的执行细节,类似于gdb的调试。

[root@localhost ~]# bash -x small_test.sh

+ echo 11

+ echo 22

+ echo 33

2.bash一但有任何一个语句返回非真的值,则退出bash

set -o errexit

或者写作

set -e 

使用方法,直接在脚本中写入

#!/bin/bash

#开启检查

set -e

#如果cd失败,脚本会退出

cd /dir1

ls -l 

#关闭检查

set +e

当cd到某个目录删除文件时,能防止cd失败后,误删除。

3.使用未初始化的变量时,让bash自动退出

set -o nounset

或者写作

set -u    

使用方法与set -e类似。

以上就是shell调试的一些技巧。

标签:脚本,shell,echo,set,调试,linux,bash
From: https://www.cnblogs.com/developer-tianyiyun/p/18154596

相关文章

  • 在Linux中,find命令和locate命令有什么区别?
    在Linux中,find和locate都是用于查找文件的命令,但它们的工作方式和效率有着显著的不同:1.find命令工作原理:find命令直接在文件系统中遍历目录结构,实时查找符合特定条件的文件或目录。这意味着它会逐个检查文件系统的实际内容,因此查找过程可能会比较慢,尤其是当搜索大型文件系统......
  • 在Linux中,如何使用grep命令搜索文本?
    grep是Linux系统中非常强大的文本搜索工具,它允许用户使用正则表达式搜索文本,并将匹配的行打印到标准输出。下面我将详细解释如何使用grep命令进行文本搜索。1.基本语法grep[OPTIONS]PATTERN[FILE...]PATTERN:要搜索的模式或正则表达式。FILE:要搜索的文件名。如果省......
  • 在Linux中,如何使用sed命令进行文本替换?
    在Linux中,sed(StreamEditor)是一个用于处理文本流的命令行工具,它非常适合用于执行基本的文本转换。sed可以读取输入的文本文件,根据指定的指令对文本进行处理,并将结果输出到标准输出设备。以下是如何使用sed命令进行文本替换的详细说明:1.基本语法sed命令的基本语法如下:sed's/re......
  • Linux用户与用户组管理
    Linux是一个多用户、多任务的分时操作系统,在Linux系统1中,用户的账号等相关信息(密码除外)均放在etc目录下文件所有者:Linux系统中的文件所有者指的是文件的拥有者用户组:Linux系统中的用户大体上可以分为三组:管理员(root)、普通用户和系统用户用户与用户组管理用户管理用户管......
  • 在Linux中,awk命令的如何使用?
    在Linux中,awk是一个强大的文本处理工具,它允许你按照模式扫描文件,并根据扫描结果执行相应的操作,比如打印、修改或过滤文件中的数据。awk的语法灵活,可以进行复杂的文本分析和数据处理。下面是使用awk命令的一些基本概念和常见用法:1.基本结构awk的基本命令格式如下:awk'pattern{......
  • 在Linux中, 如何查看系统的资源使用情况?
    在Linux系统中,查看资源使用情况对于系统管理员来说是一项常规任务,它有助于了解系统的性能和瓶颈。以下是一些常用的命令和方法来查看系统的资源使用情况:1.查看CPU使用情况top:显示实时的CPU使用情况,包括用户空间、系统空间、空闲和每个进程的CPU占用率。tophtop:top的增强......
  • linux文件句柄数满,linux文件句柄数超出系统限制怎么办?
    1、问题阐述:toomanyopenfiles:顾名思义即打开过多文件数。不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle),这个错误通常也可以叫做句柄数超出系统限制。2、产生的原因:经常在使用linux的时候出现,大多数......
  • linux 中删除空行(包括空行、空格、制表符)
     001、测试数据[root@pc1test02]#lsa.txt[root@pc1test02]#cata.txt010203040506070809101112[root@pc1test02]#cat-Aa.txt##测试数据中包括什么也无、空格、制表符、空格+制表符的几种情况010203$$040506$$070809$^I^I$1011......
  • shell脚本一键安装nginx-1.18.0
    shell脚本一键安装nginx-1.18.0#!/bin/bashset-euopipefailNGINX_VERSION="1.18.0"DOWNLOAD_URL="https://nginx.org/download/nginx-$NGINX_VERSION.tar.gz"INSTALL_DIR="/apps/nginx"PACKAGE_LIST="gccpcre-developenssl-develz......
  • linux查看文件最后的修改时间
    文件时间主要包括三种:访问时间、修改时间和更改时间。执行:#statfilename.txt1、查看文件的修改时间atime访问时间指的是文件最后一次被访问的时间。要查看文件的访问时间,可以使用stat命令,并结合awk命令来提取时间信息。示例如下:stat-c%xredis.log2、查看文件的修改时间......