set 命令

设定或取消设定shell选项和位置参数的值,或者显示shell变量的名称和值。

语法

set [-abefhkmnptuvxBCHP] [-o option-name] [--] [arg ...]

选项

  • -a  标示已修改的变量,以供输出至环境变量。
  • -b  使被中止的后台程序立刻回报执行状态。
  • -e  如果一个命令以非零状态退出,则立即退出。
  • -f  禁用文件名生成(模式匹配)
  • -h  在查找命令时记住命令的位置。。
  • -k  指令所给的参数都会被视为此指令的环境变量。
  • -m  使用监视模式。
  • -n  只读取指令,而不实际执行。
  • -p  启动优先顺序模式。
  • -P  启动-P 参数后,执行指令时,会以实际的文件或目录来取代符号连接。
  • -t  执行完随后的指令,即退出 shell。
  • -u  当执行时使用到未定义过的变量,则显示错误信息。
  • -v  显示 shell 所读取的输入值。
  • -x  执行指令后,会先显示该指令及所下的参数。
  • +<参数>  取消某个 set 曾启动的参数。
  • -B shell将执行花括号扩展
  • -C 设定之后禁止以重定向输出的方式覆盖常规文件
  • -H 启用!风格的历史替换。当shell是交互式的时候这个标识位默认打开
  • -P 设定之后类似cd的会改变当前目录的命令不追踪符号链接

实例

显示所有本地定义的Shell变量

# set

BASH=/bin/bash

BASH_ARGC=()

BASH_ARGV=()

BASH_LINENO=()

BASH_SOURCE=()

BASH_VERSINFO=([0]="3" [1]="00" [2]="15" [3]="1" [4]="release" [5]="i386-redhat-linux-gnu")

BASH_VERSION='3.00.15(1)-release'

COLORS=/etc/DIR_COLORS.xterm

COLUMNS=99

DIRSTACK=()

EUID=0

GROUPS=()

G_BROKEN_FILENAMES=1

HISTFILE=/root/.bash_history

HISTFILESIZE=1000

HISTSIZE=1000

HOME=/root

HOSTNAME=hnlinux

HOSTTYPE=i386

IFS=$' '

INPUTRC=/etc/inputrc

KDEDIR=/usr

LANG=zh_CN.GB2312

LESSOPEN='|/usr/bin/lesspipe.sh %s'

LINES=34

L

MAIL=/var/spool/mail/root

MAILCHECK=60

OLDPWD=/home/uptech

OPTERR=1

OPTIND=1

OSTYPE=linux-gnu

PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin:/opt/crosstools/gcc-3.4.6-glibc-2.3.6/bin

PIPESTATUS=([0]="2")

PPID=26005

PROMPT_COMMAND='echo -ne "