功能:该命令用来设置shell的执行方式,根据不同的需求来做相应设置。
语法:set [+-abCdefhHklmnpPtuvx]
其中 “+”表示取消参数功能 “-”表示添加某参数功能
使用技巧: 如果该命令不带任何参数,则显示所有的shell运行特性变量信息。
-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 执行指令后,会先显示该指令及其参数
+<参数> 取消set曾设置的某个选项
1. 在终端命令中输入set命令
- ywx@ywx:~/desktop$ set
-
BASH=/bin/bash bash所在位置
-
BASHOPTS=checkwinsize:cmdhist:expand_aliases:extglob:extquote:force_fignore:hist
-
append:interactive_comments:progcomp:promptvars:sourcepath
-
BASH_ALIASES=()
-
BASH_ARGC=()
-
BASH_ARGV=()
-
BASH_CMDS=()
-
BASH_COMPLETION=/etc/bash_completion
-
BASH_COMPLETION_COMPAT_DIR=/etc/bash_completion.d
2. 使用-C选项禁止覆盖操作
- ywx@ywx:~/desktop/test$ ls
-
one two
-
ywx@ywx:~/desktop/test$ cat one > two 在没有禁止情况下,可以覆盖文件
-
ywx@ywx:~/desktop/test$ cat one
-
2010-10-4 17:05
-
ywx@ywx:~/desktop/test$ cat two
-
2010-10-4 17:05
-
ywx@ywx:~/desktop/test$ set -C 转向所产生的文件无法覆盖以存在的文件
-
ywx@ywx:~/desktop/test$ cat one > two 试图覆盖操作
-
bash: two: cannot overwrite existing file 操作失败
-
ywx@ywx:~/desktop/test$ set +C 恢复原先的设定值
-
ywx@ywx:~/desktop/test$ cat one > two 可以覆盖操作
-
ywx@ywx:~/desktop/test$ cat one ;cat two
-
2010-10-4 17:05
-
2010-10-4 17:05
-
ywx@ywx:~/desktop/test$
3. -f 取消 设置通配符
- ywx@ywx:~/desktop/test$ ls
-
one two
-
ywx@ywx:~/desktop/test$ set -f 取消通配符
-
ywx@ywx:~/desktop/test$ cp on* one1 复制出错,没有这个文件
-
cp: cannot stat `on*': No such file or directory
-
ywx@ywx:~/desktop/test$ set +f 恢复通配符,可以复制
-
ywx@ywx:~/desktop/test$ cp on* one1
-
ywx@ywx:~/desktop/test$
阅读(1524) | 评论(0) | 转发(0) |