set指令详解
功能说明:设置shell
语 法:set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]
说 明:
设置或取消设置shell选项和位置参数的值
更改shell属性和位置参数的值,或显示shell变量的名称和值
选项Options:
-a:标示已修改的变量,以供输出至环境变量。
-b:使被中止的后台程序立刻回报执行状态。
-B: shell将执行大括号扩展
-C:转向所产生的文件无法覆盖已存在的文件。
-d:Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行。使用-d参数可取消。
-e:若指令传回值不等于0,则立即退出shell。
-E: 如果设置,则ERR trap由shell函数继承
-f:取消使用通配符。
-h:自动记录函数的所在位置。
-H Shell:可利用"!"加<指令编号>的方式来执行history中记录的指令。
-k:指令所给的参数都会被视为此指令的环境变量。
-l:记录for循环的变量名称。
-m:使用监视模式。
-n:只读取指令,而不实际执行。
-p:启动优先顺序模式。
-P:启动-P参数后,执行指令时,会以实际的文件或目录来取代符号连接。
-t:执行完随后的指令,即退出shell。
-T 如果设置, DEBUG trap由shell函数继承
-u:当执行时使用到未定义过的变量,则显示错误信息。
-v:显示shell所读取的输入值。
-x:执行指令后,会先显示该指令及所下的参数。
-- 将任何剩余的参数分配给位置参数。如果没有剩余参数,则取消设置位置参数
- 将任何剩余的参数分配给位置参数。 -x和-v选项已关闭。
使用+而不是 - 被关闭相应的选项设置(-设置选项,+删除设置的选项)。
当前设置的选项存储在变量$- 中。
剩下的n个ARG是位置参数,按顺序分配给$1,$2,.. $n
如果没有给出ARG,则打印所有shell变量。
-o option-name
设置相应的变量为option-name
allexport 等同于-a 从设置开始标记所有新的和修改过的用于输出的变量
braceexpand 等同于-B 允许符号扩展,默认选项
emacs 在进行命令编辑的时候,使用内建的emacs编辑器, 默认选项
errexit 等同于-e 如果一个命令返回一个非0退出状态值(失败),就退出.
errtrace 等同于-E
functrace 等同于-T
hashall 等同于-h
histexpand -H 在做临时替换的时候允许使用!和!! 默认选项
history 允许命令行历史,默认选项
ignoreeof 禁止coontrol-D的方式退出shell,必须输入exit。
interactive-comments 在交互式模式下, #用来表示注解
keyword -k 为命令把关键字参数放在环境中
monitor -m 允许作业控制
noclobber -C 保护文件在使用重新动向的时候不被覆盖
noexec -n 在脚本状态下读取命令但是不执行,主要为了检查语法结构。
noglob -d 禁止路径名扩展,即关闭通配符
nolog currently accepted but ignored
notify -b 在后台作业以后通知客户
nounset -u 在扩展一个没有的设置的变量的时候,显示错误的信息
onecmd -t 在读取并执行一个新的命令后退出
physical -P 如果被设置,则在使用pwd和cd命令时不使用符号连接的路径 而是物理路径
pipefail 管道的返回值是以非零状态退出的最后一个命令的状态,如果没有以非零状态退出的命令则为零(即设置后,管道中任何一处失败,即返回非0)
posix 改变shell行为以便符合POSIX要求
privileged 一旦被设置,shell不再读取.profile文件和env文件 shell函数也不继承任何环境
verbose -v 为调试打开verbose模式
vi 在命令行编辑的时候使用内置的vi编辑器
xtrace -x 打开调试回响模式