shopt – Display and Set Shell Operation Options

The shopt command is used to display and set various shell options that affect the behavior of the current shell. It is a built-in command in most shells, including Bash and Zsh.

Overview

The basic syntax for using shopt is as follows:

shopt [option] [optname ...]

The option argument can be one of the following:

  • -p: Display all shell options that are currently set.
  • -s: Enable one or more shell options.
  • -u: Disable one or more shell options.

The optname argument is the name of the shell option to be displayed or modified.

Here are some examples of using shopt:

  • To display all currently set shell options:
    shopt -p
    
  • To enable the nocaseglob option, which makes filename globbing case-insensitive:
    shopt -s nocaseglob
    
  • To disable the histappend option, which prevents Bash from appending to the history file:
    shopt -u histappend
    

Some common use cases for shopt include:

  • Changing the behavior of filename globbing with options like nullglob, globstar, and dotglob.
  • Modifying the behavior of Bash’s history with options like histappend, cmdhist, and histreedit.
  • Tweaking the behavior of Bash’s tab completion with options like autocd, cdspell, and dirspell.

Options

Here are the available options for shopt:

Option Description
-p Display all currently set shell options.
-s Enable one or more shell options.
-u Disable one or more shell options.

Troubleshooting Tips

  • If you’re not sure which shell options are available, consult the documentation for your shell or run shopt -p to see a list of all currently set options.
  • Be careful when enabling or disabling shell options, as they can potentially change the behavior of your shell in unexpected ways.

Notes

  • The behavior of shopt can vary between different shells, so be sure to consult the documentation for your specific shell if you’re not sure how a particular option works.