分享

这个set命令的这些功能你了解吗

 lifebegins40s 2022-12-03 发布于广东
文章图片1

提醒:本文为合集文章,后续会持续更新!

关注我,持续学习shell脚本,每日提升!

有一说一,我之前还真不知道set命令这么好用,还傻呵呵地自己写函数做脚本阶段性判断,判断上一条命令是否有问题,有问题就直接退出脚本。

这在部署脚本里非常有必要,毕竟如果第一步执行不成功,后面的脚本就没有必要执行了。

大家可以看我这篇文章 给你一篇部署文档,你能不能写一个脚本出来这里面就有个ck_ok函数。其实要是我早知道set命令的用法,我才不会自己写判断函数。

废话不多说,直接上重点:set命令的-e选项就有我写的那个ck_ok函数的功能。直接来一段代码看效果吧。

#! /bin/bashset -eecho 'Hello, this is a test script.'ls /tmp/aminglinux.comecho '123'

执行该脚本后,结果为:

Hello, this is a test script.ls: 无法访问/tmp/aminglinux.com: 没有那个文件或目录

如果不加第二行的set -e,则结果为:

Hello, this is a test script.ls: 无法访问/tmp/aminglinux.com: 没有那个文件或目录123

作用一目了然,set -e就是让脚本实现,一旦遇到错误马上退出脚本

第二个用法:要想在脚本某一段做调试,也就是说想要查看脚本代码执行过程详细信息,可以在该代码片段前加set -x,在该代码片段后加set +x。看脚本吧:

#!/bin/basha=1b=2set -xc=3d=4e=$[$a+$b]f=$[$c*$d]echo $eset +xecho $f

执行结果:

+ c=3+ d=4+ e=3+ f=12+ echo 33+ set +x12

说明:set -x表示开启x选项,set +x表示关闭x权限。

第三个用法,set -u加上后,如果脚本里调用了一个没有被赋值的变量,则会报错。脚本示例:

#!/bin/bashset -ua=1echo $becho $a

执行脚本,会报错:

line 4: b: unbound variable

如果去掉脚本里的set -u,再次执行脚本,结果是:

1

它会将没有赋值的变量打印成空行。

Set命令常用用法就这三个。

就这!

关注'阿铭linux',持续提升!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多