点击上方“Linux随笔录”,选择“置顶/星标公众号”
福利干货,第一时间送达
- 前言
- set的常用命令选项
- 设置/取消 Shell 选项
- 设置位置参数
- 显示所有变量和函数
- 处理带空格的参数
- 调试脚本
- 恢复默认选项
- 错误退出
- 总结
前
不管我们是做嵌入式Linux研发人员,还是做运维人员,都会或多或少去查看编写 shell 脚本,你遇到问题是否也只会用一行一行echo去查看脚本分析问题。这样效率过于慢,今天教大家set关键字方法轻松分析遇到的问题
set的常用命令选项
set 用于设置或取消设置 Shell 选项、位置参数,以及显示变量和函数定义。它的用法非常广泛,主要包括以下几个方面:
设置/取消 Shell 选项
set 可以启用或禁用 Shell 的运行选项,语法如下:
常用选项

设置位置参数
set 可以重新设置脚本的位置参数:
示例
执行脚本结果如下

显示所有变量和函数
不带参数的 set 会显示所有变量:
ubuntu上的环境变量都可以打印出来,脚本里的变量打印不出来

处理带空格的参数
set 可以正确处理带空格的参数:
执行脚本结果如下

调试脚本
set -x 和 set -v 常用于调试
打开调试效果如下

恢复默认选项
顾名思义就是将之前的 set 的参数改回默认选项
错误退出
set -e 常用于一个命令返回一个非0退出状态值(失败),就立刻退出
下面举一个单独使用set -e的例子
执行脚本结果如下

会发现脚本最后一行echo没有打印出来
set -E 常和trap函数结合一起使用更容易发现脚本里哪条指令发生错误
下面举个set -E的例子
看下执行脚本结果

会发现打印两次错误发生在: ls /home/pan 便于开发者更容易发现到哪条指令发生错误
在项目中,set -e和set -E更多是在一起使用,便于更方便调试脚本,这样更快速定位到哪条指令发生问题退出脚本
查看脚本执行结果

会发现确实比set -e时错误提示更加明显,会多提示一行错误发生的指令
总结
本篇我们学会了常用的set关键字语法可以让你的 shell 脚本提高更改 bug 调试效率,本篇学会的同学可以一键支持三连下,欢迎关注公众号[Linux随笔录],持续分享干货!
1万+

被折叠的 条评论
为什么被折叠?



