zoukankan      html  css  js  c++  java
  • 用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

  • 相关阅读:
    【JS】415- JS面向对象之 7 大基本原则
    【每周小回顾】14- 一起回顾上周精彩内容
    【全栈修炼】414- CORS和CSRF修炼宝典
    【全栈修炼】CORS和CSRF修炼宝典
    【JS】413- JavaScript中的位运算和权限设计
    【面试题】412- 35 道必须清楚的 React 面试题
    【CSS】410- 关于CSS盒子模型、BFC及其应用
    15.app后端怎么设计用户登录方案
    14.app后端如何设计api
    13.app后端为什么要用到消息队列
  • 原文地址:https://www.cnblogs.com/pandachen/p/7077426.html
Copyright © 2011-2022 走看看