Executing the following code in GNU bash, Version 4.2.45(1)-release (x86_64-redhat-linux-gnu), Fedora 19 ...
shopt -s extglob export HISTIGNORE="!(+(!([[\:space\:]]))+([[\:space\:]])+(!([[\:space\:]])))" declare -p HISTIGNORE ... brings bash to a full stop. It does not print a command prompt hereafter. Why is that.
Background:
All I want to tell bash is to ignore any simple, i.e. one word command. Bash should not remember command lines like cd, pwd, history, etc. My original definition of the HISTIGNORE variable looked like this:
export HISTIGNORE="!(+(!([[:space:]]))+([[:space:]])+(!([[:space:]])))" I added a \ backslash character before each : colon character because according to the bash info pages the latter separates each (extended) shell glob, i.e. pattern from another. Without escaping the single pattern does not have any effect and a simple command still makes it into history.
declare -p HISTIGNORE