用set和shopt设置bash选项

1、set命令

-o打开选项,+o关闭选项
#set -o //显示选项设置
#set -o noclobber //打开该选项,重定向将覆盖已存在的文件
#set +o noclobber //关闭该选项,防止重定向覆盖已存在的文件
#set -o allexport //打开该选项,它导致所有的变量都自动输出给子shell
# set +o nounset 或 set -u //使用未声明变量时脚本退出
# set +o errexit 或 set -e //如果命令运行失败让脚本退出执行

#echo $SHELLOPTS //显示set设置的选项

cb@cb-ThinkPad-T450:~$ set -o|grep on
set -o|grep on
braceexpand on
hashall on
histexpand on
history on
interactive-comments on
monitor on
onecmd off
verbose on

cb@cb-ThinkPad-T450:~$ echo $SHELLOPTS
echo $SHELLOPTS
braceexpand:hashall:histexpand:history:interactive-comments:monitor:verbose

$export SHELLOPTS //如果export SHELLOPTS这个变量,子进程 Shell 会获取到这个环境变量的值,解析之后,打开这些继承来的选项

2、shopt命令

作用和set命令基本相同,适用于新版本的bash(2.x+),相对于set增加了许多选项。-u表明选项没有被设置,-s表明选项已被设置
#shopt -p //显示选项设置情况,有的set支持的选项不显示
shopt -u autocd
shopt -u cdable_vars
shopt -u cdspell
shopt -u checkhash
shopt -u checkjobs
shopt -s checkwinsize
......

#shopt -s cdspell //设置cdspell选项
#shopt -u cdspell //关闭cdspell选项
#shopt -o errexit //显示set支持的errexit选项的设置值,但用-s选项设置不了。
errexit off

#echo $BASHOPTS //显示shopt设置的选项

cb@cb-ThinkPad-T450:~$ shopt -p|grep '\-s'
shopt -p|grep '\-s'
shopt -s checkwinsize
shopt -s cmdhist
shopt -s complete_fullquote
shopt -s expand_aliases
shopt -s extglob
shopt -s extquote
shopt -s force_fignore
shopt -s gnu_errfmt
shopt -s histappend
shopt -s interactive_comments
shopt -s progcomp
shopt -s promptvars
shopt -s sourcepath


cb@cb-ThinkPad-T450:~$ echo $BASHOPTS
echo $BASHOPTS
checkwinsize:cmdhist:complete_fullquote:expand_aliases:extglob:extquote:force_fignore:gnu_errfmt:histappend:interactive_comments:progcomp:promptvars:sourcepath

 

转载于:https://www.cnblogs.com/pandachen/p/7077426.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值