shopt - macOS


shopt is a versatile macOS command that allows users to customize and configure shell options. It enables fine-tuning of the shell environment to enhance productivity, improve efficiency, and tailor it to specific needs.


shopt [-uqs] [+pqsu] [-o name] [-o name=value] [-- option-name]


  • -u, –unset: Unset the specified option.
  • -q, –quiet: Suppress output.
  • -s, –script: Enable compatibility with Bourne shell (-sh) scripts.
  • +p, –posix: Enable POSIX shell behavior.
  • +q, –xpg: Enable System V shell behavior.
  • +s, –source: Enable source compatibility.
  • +u, –undefined: Treat undefined variables as an error.
  • -o, –option: Get or set the specified option. Use -o name=value to set a value.


Enable POSIX-compliant behavior:

shopt -s posix

Disable expansion of variables in arithmetic expressions:

shopt -u arith_expand

Set a maximum line length for history:

shopt -o histsize=1000

Common Issues

  • Shell settings not persisting: To make shopt settings permanent, add them to the user’s shell configuration file (e.g., ~/.zshrc for Zsh).


  • With zsh: shopt options can be set and unset directly within the zsh configuration file (~/.zshrc).
  • With aliases: Create aliases that incorporate shopt options to streamline common configurations.
  • set: Set shell variables.
  • ulimit: View and modify resource limits.