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变量和函数

  • 25
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值