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

Linux set命令介绍

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

Linux set命令适用的Linux版本

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

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

Linux set命令的基本语法

set命令的基本语法如下:

set -options arguments

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

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

选项 说明
-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变量和函数

最近更新

  1. TCP协议是安全的吗?

    2024-01-09 07:50:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-09 07:50:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-09 07:50:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-09 07:50:03       18 阅读

热门阅读

  1. LeetCode 0447.回旋镖的数量:哈希表

    2024-01-09 07:50:03       42 阅读
  2. Git、GitHub、Gitee 和 GitLab的区别和使用方法

    2024-01-09 07:50:03       30 阅读
  3. 你想使用域名访问一个ip的网页,你应该怎么办呢?

    2024-01-09 07:50:03       34 阅读
  4. Qt 多进程编程-将子程序嵌入到主窗口

    2024-01-09 07:50:03       34 阅读
  5. 五、C#与数据库交互( Entity Framework ORM框架)

    2024-01-09 07:50:03       32 阅读
  6. 设置5台SSH互免的虚拟机服务器配置

    2024-01-09 07:50:03       34 阅读
  7. 第28关 k8s监控实战之Prometheus(五)

    2024-01-09 07:50:03       41 阅读
  8. 【适用于Jetson Orin Nano的录屏软件】

    2024-01-09 07:50:03       37 阅读
  9. C结构体声明,定义,初始化(赋值),访问

    2024-01-09 07:50:03       29 阅读