【命令操作】脚本中的set -e起什么作用?

文摘   2025-01-07 09:56   上海  

使

Hello,大家好啊!今天给大家带来一篇关于 在信创终端上使用 set 命令 的文章。set 是 Linux 系统中的一个重要命令,功能强大且用途广泛,可以用来设置或显示环境变量、控制脚本行为以及配置终端的特定属性。掌握 set 命令能够让您在终端操作中更加高效、灵活!欢迎大家分享点赞,点个在看和关注吧!

什么是 set 命令?

set 是 Shell 提供的一个内建命令,主要用于:

查看当前环境变量:显示当前 Shell 环境中的所有变量和函数。

设置环境变量:临时修改环境变量的值。

配置 Shell 行为:通过启用或禁用某些选项(如调试模式、错误检查等)来改变 Shell 的运行方式。


开启命令显示和调试

pdsyw@pdsyw-PC:~/Desktop$ vim pdsyw.shpdsyw@pdsyw-PC:~/Desktop$ cat  pdsyw.sh#!/bin/bashset -xecho "Debugging enabled"ls /nonexistentset +xecho "Debugging disabled"

pdsyw@pdsyw-PC:~/Desktop$ bash pdsyw.sh+ echo 'Debugging enabled'Debugging enabled+ ls /nonexistentls: 无法访问'/nonexistent': 没有那个文件或目录+ set +xDebugging disabled

作用:

启用调试模式,显示脚本中每条命令及其结果。调试模式会输出命令的执行过程,帮助定位问题。


解释:

set -x:从此处开始,Bash 会在运行每条命令前,打印该命令及其参数。

set +x:关闭调试模式,恢复正常行为。




捕获错误并退出

pdsyw@pdsyw-PC:~/Desktop$ vim pdsyw.shpdsyw@pdsyw-PC:~/Desktop$ cat  pdsyw.sh#!/bin/bashset -eecho "This will run"false    # 模拟一个错误echo "This will not run"

pdsyw@pdsyw-PC:~/Desktop$ bash pdsyw.shThis will run

作用:

当脚本中某个命令返回非零退出状态时,立即退出脚本,避免执行后续命令。


解释:

set -e:脚本遇到任何非零状态(即错误)时会立即退出。

在示例中,false 模拟错误,脚本执行到此处时退出,因此 echo "This will not run" 不会执行。





防止变量未定义使用

pdsyw@pdsyw-PC:~/Desktop$ vim pdsyw.shpdsyw@pdsyw-PC:~/Desktop$ cat  pdsyw.sh#!/bin/bashset -uecho $undefined_variable

pdsyw@pdsyw-PC:~/Desktop$ bash pdsyw.shpdsyw.sh:行3: undefined_variable:未绑定的变量

作用:

使用未定义的变量时会触发错误,而不是默认返回空值。

解释:

set -u:如果脚本尝试引用未定义的变量(如 $undefined_variable),会立即报错并终止脚本。

默认情况下,未定义的变量会返回空值,这可能导致意外的逻辑错误。





防止文件重定向覆盖

pdsyw@pdsyw-PC:~/Desktop$ set -o noclobberpdsyw@pdsyw-PC:~/Desktop$ echo hello > pdsyw.shbash: pdsyw.sh:无法覆盖已存在的文件

作用:

避免意外覆盖已存在的文件,保护重要数据。


解释:

set -o noclobber 或 set -C:防止使用 > 重定向操作覆盖已存在的文件。

如果确实需要覆盖文件,可以使用 >| 强制覆盖,例如:

echo hello >| pdsyw.sh


pdsyw@pdsyw-PC:~/Desktop$ set -Cpdsyw@pdsyw-PC:~/Desktop$ echo hello > pdsyw.shbash: pdsyw.sh:无法覆盖已存在的文件




恢复默认行为

pdsyw@pdsyw-PC:~/Desktop$ set +a +b +e +f +h +n +u +v +x

作用:

关闭某些启用的选项,恢复到默认的 Bash 行为。


解释:

+ 号关闭某选项,以下是部分选项的作用:

+e:关闭错误捕获,错误不会导致脚本退出。

+u:允许使用未定义变量,未定义变量返回空值。

+x:关闭调试模式,不再显示命令执行过程。

Bash 提供的这些选项用于提高脚本的安全性、可调试性和稳定性,以下是常用选项的作用一览,在脚本中使用这些选项可以显著提高代码质量和执行安全性:

选项

作用

-x

显示每条命令及其参数(开启调试)。

-e

遇到错误时立即退出脚本。

-u

禁止使用未定义变量。

-o noclobber

禁止文件重定向覆盖已存在的文件。

+<选项>

恢复默认行为,关闭已启用的选项。


通过 set 命令,您可以轻松配置 Shell 的行为、查看和设置环境变量,并提高脚本调试和运行的效率。在信创终端上,熟练使用 set 命令可以大幅提升您的工作效率,特别是在处理自动化任务和脚本编写时。如果您觉得这篇文章对您有帮助,欢迎分享点赞,记得点个在看和关注哦!我们下次再见!



往期回顾

Review of previous periods

【命令操作】UFW:轻松掌控信创终端防火墙|统信|麒麟|方德
【命令操作】信创操作系统上md5sum命令详解 | 统信 | 麒麟 | 方德

【命令操作】信创系统如何自定义自己常用的命令| 统信 | 麒麟 | 方德





扫码添加

添/加/好/友

进/群/交/流

·end·

—如果喜欢,快分享给你的朋友们吧—

我们一起愉快的玩耍吧


鹏大圣运维
统信UOS/麒麟KYLINOS/deepin/openkylin/openeuler/OpenAnolis等国产化操作系统使用经验分享。
 最新文章