set
命令是Linux操作系统中的内置shell命令,用于设置和取消shell变量和选项。它常用于shell脚本中,以配置环境并控制脚本的行为。
set
命令在所有主流的Linux发行版中都可以使用,包括但不限于Ubuntu、Fedora、Debian、Kubuntu以及CentOS 7和CentOS 81。
[linux@bashcommandnotfound.cn ~]$ set --help
set
命令的基本语法如下:
set -options arguments
以下是set
命令的一些常用选项1:
选项 | 说明 |
---|---|
-a | 将后续定义的变量或函数自动导出 |
-b | 当作业状态改变时立即通知 |
-e | 如果一个命令以非零状态退出,则立即退出 |
-f | 禁用文件名扩展 |
-h | 记住函数的位置,即使它们尚未定义 |
-k | 将所有参数当作变量赋值 |
-m | 启用作业控制 |
-n | 读取命令但不执行它们 |
-o | 以长格式列出选项 |
-p | 启动特权模式 |
-t | 退出shell或脚本 |
-u | 对未设置的变量和参数进行处理 |
-v | 打印shell输入行 |
-x | 打印命令和参数 |
以下是一些set
命令的使用实例:
如果不带任何选项或参数使用set
命令,它将显示所有的shell变量和它们的值。
[linux@bashcommandnotfound.cn ~]$ set
位置参数可以被定义为shell脚本或程序中的值,其值使用set
命令进行赋值。
[linux@bashcommandnotfound.cn ~]$ set Ubuntu Fedora LinuxMint Debian Kubuntu
[linux@bashcommandnotfound.cn ~]$ echo $3
双破折号--
用于取消位置参数。
[linux@bashcommandnotfound.cn ~]$ set --
[linux@bashcommandnotfound.cn ~]$ echo "$*"
如果你写了一个新的脚本并且想要测试它,但是你不确定错误在哪里,那么使用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'
你可以使用+
选项来禁用shell选项。
[linux@bashcommandnotfound.cn ~]$ set +o nounset
你可以使用-
选项来启用shell选项。
[linux@bashcommandnotfound.cn ~]$ set -o nounset
如果你想查看所有的shell选项,你可以使用-o
选项。
[linux@bashcommandnotfound.cn ~]$ set -o
在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'
你可以使用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"
你可以使用set
命令来取消位置参数。
[linux@bashcommandnotfound.cn ~]$ set --
[linux@bashcommandnotfound.cn ~]$ echo "$1"
[linux@bashcommandnotfound.cn ~]$ echo "$2"
[linux@bashcommandnotfound.cn ~]$ echo "$3"
set
命令时,需要注意-o
可以启用shell选项,而+o
可以禁用shell选项。bash: set: command not found
,请按照上面的方法安装。以下是一些与set
命令相关的命令:
更多详细内容可以参考:
linux入门学习教程 - Linux入门自学网
Linux set命令详解:如何设置和显示shell变量和函数