变量$-
h:hashall,打开选项后,Shell 会将命令所在的路径hash下来,避免每次都要查询。通过set +h将h选
项关闭
i:interactive-comments,包含这个选项说明当前的 shell 是一个交互式的 shell。所谓的交互式shell,
在脚本中,i选项是关闭的
m:monitor,打开监控模式,就可以通过Job control来控制进程的停止、继续,后台或者前台执行等
B:braceexpand,大括号扩展
H:history,H选项打开,可以展开历史列表中的命令,可以通过!感叹号来完成,例如“!!”返回上最近的
一个历史命令,“!n”返回第 n 个历史命令
[root@centos7 test1]#echo $- himBH [root@centos7 test1]#hash hits command 10 /usr/bin/bash 2 /usr/bin/rm 2 /usr/bin/chmod 1 /usr/bin/netstat 2 /usr/bin/cat 2 /usr/bin/date 8 /usr/bin/vim 1 /usr/bin/man 1 /usr/sbin/ntpdate 1 /usr/bin/printenv 1 /usr/bin/env 16 /usr/bin/ls 1 /usr/sbin/ss [root@centos7 test1]#echo $- himBH [root@centos7 test1]#set +h [root@centos7 test1]#echo $- imBH [root@centos7 test1]#hash -bash: hash: hashing disabled [root@centos7 test1]#set -h
set命令实现脚本安全
-u 在扩展一个没有设置的变量时,显示错误信息, 等同set -o nounset
-e 如果一个命令返回一个非0退出状态值(失败)就退出, 等同set -o errexit
-o option 显示,打开或者关闭选项
显示选项:set -o
打开选项:set -o 选项
关闭选项:set +o 选项
-x 当执行命令时,打印命令及其参数,类似 bash -x