set命令可用来打开或关闭shell选项,就像处理命令行参数一样。要打开一个选项,在选项前加一个破折号(-)。要关闭一个选项,在选项前加一个加号(+)。表13-26列出了set选项的清单。
表1 内置set命令选项
选 项 名 | 快捷开关 | 含 义 |
allexport | -a | 从这个选项被设置开始就自动标明要输出的新变量或修改过的变量,直至选项关闭 |
braceexpand | -B | 打开花括号扩展,是一个默认设置 |
emacs | 使用emacs内置编辑器进行命令行编辑,是一个默认设置 | |
errexit | -e | 当一个命令返回一个非零退出状态时,退出。读取初始化文件时不设置 |
histexpand | -H | 当执行历史替换时打开!和!!,是一个默认设置 |
history | 打开命令行历史。默认时为开 | |
ignoreeof | 禁止用EOF(Ctrl+D)键退出shell。必须键入exit才能退出。和设置shell变量IGNOREEOF=10一样 | |
keyword | -k | 为命令把keyword变量加到环境中 |
interactive-comments | 对于交互式shell,#用来将后面的文本作为注释。 | |
monitor | -m | 允许作业控制 |
noclobber | -C | 防止文件在重定向时被重写 |
noexec | -n | 读命令,但不执行。用来检查脚本的语法。交互式运行时不设置 |
noglob | -d | 禁止用路径名扩展。即,关闭通配符 |
notify | -b | 通知用户什么时候后台作业完成 |
nounset | -u | 如果一个变量在扩展时没被设置就显示一个错误 |
onecmd | -t | 在读取和执行命令后退出 |
physical | -P | 设置时,在键入cd或pwd时禁止符号链接。用物理目录替代 |
posix | 如果默认操作不符合POSIX标准就改变shell行为 |
privileged | -p | 设置时,shell不读取.profile或ENV文件,且shell函数不从环境继承。而自动为setuid脚本设置 |
verbose | -v | 为调试打开verbose模式 |
vi | 使用vi内置编辑器进行命令行编辑 | |
xtrace | -x | 为调试打开echo模式 |