Hi Chet, apparently bash does not recognize the ":" colon characters in POSIX character classes when assigned to the "HISTIGNORE" variable.
I tried to set the "HISTIGNORE" variable directly from within a non-login, interactive session. But still I cannot convince bash's history with the following definitions: 1.) HISTIGNORE="+([[:word:]])" 2.) HISTIGNORE="+([^[:space:]])" On the other hand such simple definitions work: 1.) HISTIGNORE="+([a-z])" 2.) HISTIGNORE="+([-0-9A-Z_a-z])" Best regards Tim 2014/1/12 Tim Friske <m...@timfriske.com>: > Hi Chet, > > hmm ... I simplified the pattern to "+([^[:space:]])". It works on > when I let bash expand files but it does not keep bash from adding > "word" commands such as "cd", "pwd", etc. My history related settings > are as follows: > > shopt -s extglob > > declare -x HISTSIZE="10000" > declare -x HISTFILESIZE="10000" > declare -x histchars="!^#" > declare -x HISTIGNORE="+([^[:space:]])" > declare -x HISTCONTROL="ignorespace:ignoredups:erasedups" > declare -x HISTTIMEFORMAT="%FT%T " > declare -x HISTFILE="/home/tifr/.cache/bash/history" > > Any ideas as to how to correctly assign the "+([^[:space:]])" pattern > to the "HISTIGNORE" variable? By the way I'm setting the history > related variables from my ".bash_login" file. That is why I'm > exporting them. > > Thank you very much for your help. > > Kind regards > Tim > > 2014/1/11 Tim Friske <m...@timfriske.com>: >> Hi, >> >> 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. >> >> Cheers >> Tim