00. 目录
01. 命令概述
set命令作用主要是显示系统中已经存在的shell变量,以及设置shell变量的新变量值。使用set更改shell特性时,符号"+“和”-"的作用分别是打开和关闭指定的模式。set命令不能够定义新的shell变量。如果要定义新的变量,可以使用declare命令以变量名=值
的格式进行定义即可。
02. 命令格式
用法:set [选项] [参数]
03. 常用选项
-a 标示已修改的变量,以供输出至环境变量
-b 使被中止的后台程序立刻回报执行状态
-C 转向所产生的文件无法覆盖已存在的文件
-d Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行。使用-d参数可取消
-e 若指令传回值不等于0,则立即退出shell
-f 取消使用通配符
-h 自动记录函数的所在位置
-H Shell可利用”!”加<指令编号>的方式来执行history中记录的指令
-k 指令所给的参数都会被视为此指令的环境变量
-l 记录for循环的变量名称
-m 使用监视模式
-n 只读取指令,而不实际执行
-p 启动优先顺序模式
-P 启动-P参数后,执行指令时,会以实际的文件或目录来取代符号连接
-t 执行完随后的指令,即退出shell
-u 当执行时使用到未定义过的变量,则显示错误信息
-v 显示shell所读取的输入值
-x 执行指令后,会先显示该指令及所下的参数
04. 参考示例
4.1 查看本地变量
[root@localhost ~]# deng="hello itcast"
[root@localhost ~]# echo $deng
hello itcast
[root@localhost ~]# set | grep deng
deng='hello itcast'
[root@localhost ~]#
4.2 查看当前设置情况
[root@localhost ~]# set -o
allexport on
braceexpand on
emacs on
errexit off
errtrace off
functrace off
hashall on
histexpand on
history on
ignoreeof off
interactive-comments on
keyword off
monitor on
noclobber off
noexec off
noglob off
nolog off
notify off
nounset off
onecmd off
physical off
pipefail off
posix off
privileged off
verbose off
vi off
xtrace off
[root@localhost ~]#
4.3 把vi选项打开
[root@localhost ~]# set -o vi
[root@localhost ~]# set -o
allexport on
braceexpand on
emacs off
errexit off
errtrace off
functrace off
hashall on
histexpand on
history on
ignoreeof off
interactive-comments on
keyword off
monitor on
noclobber off
noexec off
noglob off
nolog off
notify off
nounset off
onecmd off
physical off
pipefail off
posix off
privileged off
verbose off
vi on
xtrace off
[root@localhost ~]#
4.4 内置set命令选项
选项名 快捷开关 含义
allexport -a 从这个选项中被设置开始就自动标明要输出的新变量或修改过的变量,直至选项被复位
braceexpand -B 打开花括号扩展,它是一个默认设置
emacs 使用emacs内置编辑器进行命令行编辑,是一个默认设置
errexit -e 当命令返回一个非零退出状态(失败)时退出。读取初始化文件时不设置
histexpand -H 执行历史替换时打开!和!!扩展,是一个默认设置
history 打开命令行历史、默认为打开
ignoreeof 禁止用EOF(Ctrl+D)键退出shell。必须键入exit才能退出。等价于设置shell变量IGNOREEOF=10
keyword -k 将关键字参数放到命令的环境中
interactive-comments 对于交互式shell,把#符后面的文本作为注释
monitor -m 设置作业控制
noclobber -C 防止文件在重定向时被重写
noexec -n 读命令,但不执行。用来检查脚本的语法。交互式运行时不开启
noglob -d 禁止用路径名扩展。即关闭通配符
notify -b 后台作业完成时通知用户
nounset -u 扩展一个未设置的变量时显示一个错误信息
onecmd -t 在读取和执行命令后退出
physical -P 设置时,在键入cd或pwd禁止符号链接。用物理目录代替
privileged -p 设置后,shell不读取.profile或ENV文件,且不从环境继承shell函数,将自动为setuid脚本开启特权
verbose -v 为调试打开verbose模式
vi 使用vi内置编辑器进行命令行编辑
xtrace -x 为调试打开echo模式
05. 附录
转载:https://blog.csdn.net/dengjin20104042056/article/details/100901005
查看评论