bashshopt

How to disable a shopt option in Bash?


How to disable a shopt option, for example extglob?

I have this in my .bashrc file:

shopt -s extglob

Solution

  • Use the -u option:

    shopt -u extglob
    

    From help shopt (or shopt --help as well on BSD systems):

    Options:
      -o    restrict OPTNAMEs to those defined for use with `set -o'
      -p    print each shell option with an indication of its status
      -q    suppress output
      -s    enable (set) each OPTNAME
      -u    disable (unset) each OPTNAME
    

    To see how to do shopt in a clean way, see this:

    https://github.com/codeforester/base/blob/master/lib/shopt.sh