Linux set命令教程:如何优雅地设置和取消shell变量和选项(附实例详解和注意事项)

发布时间:2024年01月09日

Linux set命令介绍

set命令是Linux操作系统中的内置shell命令,用于设置和取消shell变量和选项。它常用于shell脚本中,以配置环境并控制脚本的行为。

Linux set命令适用的Linux版本

set命令在所有主流的Linux发行版中都可以使用,包括但不限于Ubuntu、Fedora、Debian、Kubuntu以及CentOS 7和CentOS 81。

[linux@bashcommandnotfound.cn ~]$ set --help

Linux set命令的基本语法

set命令的基本语法如下:

set -options arguments

Linux set命令的常用选项或参数说明

以下是set命令的一些常用选项1:

选项说明
-a将后续定义的变量或函数自动导出
-b当作业状态改变时立即通知
-e如果一个命令以非零状态退出,则立即退出
-f禁用文件名扩展
-h记住函数的位置,即使它们尚未定义
-k将所有参数当作变量赋值
-m启用作业控制
-n读取命令但不执行它们
-o以长格式列出选项
-p启动特权模式
-t退出shell或脚本
-u对未设置的变量和参数进行处理
-v打印shell输入行
-x打印命令和参数

Linux set命令实例详解

以下是一些set命令的使用实例:

实例1:显示所有shell变量和函数

如果不带任何选项或参数使用set命令,它将显示所有的shell变量和它们的值。

[linux@bashcommandnotfound.cn ~]$ set

实例2:设置位置参数的值

位置参数可以被定义为shell脚本或程序中的值,其值使用set命令进行赋值。

[linux@bashcommandnotfound.cn ~]$ set Ubuntu Fedora LinuxMint Debian Kubuntu
[linux@bashcommandnotfound.cn ~]$ echo $3

实例3:取消位置参数的值

双破折号--用于取消位置参数。

[linux@bashcommandnotfound.cn ~]$ set --
[linux@bashcommandnotfound.cn ~]$ echo "$*"

实例4:执行带有错误的shell脚本

如果你写了一个新的脚本并且想要测试它,但是你不确定错误在哪里,那么使用set命令,有一种方法可以执行它,直到出现错误的那一行。

[linux@bashcommandnotfound.cn ~]$ set -e
[linux@bashcommandnotfound.cn ~]$ echo 'Welcome to itslinuxfoss.com'
[linux@bashcommandnotfound.cn ~]$ cat filename
[linux@bashcommandnotfound.cn ~]$ echo 'End of script'

实例5:禁用shell选项

你可以使用+选项来禁用shell选项。

[linux@bashcommandnotfound.cn ~]$ set +o nounset

实例6:启用shell选项

你可以使用-选项来启用shell选项。

[linux@bashcommandnotfound.cn ~]$ set -o nounset

实例7:显示所有shell选项

如果你想查看所有的shell选项,你可以使用-o选项。

[linux@bashcommandnotfound.cn ~]$ set -o

实例8:在脚本中使用set命令

在shell脚本中,set命令常用于改变脚本的行为。

[linux@bashcommandnotfound.cn ~]$ echo 'Welcome to itslinuxfoss.com'
[linux@bashcommandnotfound.cn ~]$ set -e
[linux@bashcommandnotfound.cn ~]$ cat filename
[linux@bashcommandnotfound.cn ~]$ echo 'End of script'

实例9:使用set命令设置位置参数

你可以使用set命令来设置位置参数。

[linux@bashcommandnotfound.cn ~]$ set -- "arg 1" "arg 2" "arg 3"
[linux@bashcommandnotfound.cn ~]$ echo "$1"
[linux@bashcommandnotfound.cn ~]$ echo "$2"
[linux@bashcommandnotfound.cn ~]$ echo "$3"

实例10:使用set命令取消位置参数

你可以使用set命令来取消位置参数。

[linux@bashcommandnotfound.cn ~]$ set --
[linux@bashcommandnotfound.cn ~]$ echo "$1"
[linux@bashcommandnotfound.cn ~]$ echo "$2"
[linux@bashcommandnotfound.cn ~]$ echo "$3"

Linux set命令的注意事项

  • 使用set命令时,需要注意-o可以启用shell选项,而+o可以禁用shell选项。
  • 如果你看到bash: set: command not found,请按照上面的方法安装。

Linux set相关命令

以下是一些与set命令相关的命令:

更多详细内容可以参考:
linux入门学习教程 - Linux入门自学网
Linux set命令详解:如何设置和显示shell变量和函数

文章来源:https://blog.csdn.net/u012964600/article/details/135402697
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。