Até onde eu sei, não há esse recurso no bash.
Uma solução possível é colocar o comando em um alias ou função e omitir a definição de alias / função do histórico de comandos. Você ainda pode usar o alias / function e seus usos serão gravados no arquivo de histórico, mas a própria definição da função permanecerá apenas na memória. Por exemplo, na sessão seguinte, o comando mysql -p$(mysql_password)
será gravado no arquivo de histórico, mas a senha em si não será, pois o comando alias mysql_password=…
possui um espaço à esquerda.
$ HISTCONTROL=ignorespace
$ alias mysql_password=$(echo swordfish)
$ mysql -p$(mysql_password)
Se você quiser editar a definição da função, poderá imprimi-la com declare -f foo
( alias foo
para um alias) e usar a saída para definir uma nova (um editor externo pode ajudar ou o shell-expand-line
readline function que está vinculada a C-M-e
).
Como alternativa, alterne para zsh e defina a HISTORY_IGNORE
variable . Os comandos que correspondem a esse padrão são armazenados no histórico da memória, mas não gravados no arquivo de histórico. Você não pode decidir em um comando por base de comando, mas você pode incluir um marcador como #dontstore
no comando e definir HISTORY_IGNORE='\#dontstore'
.