Ejecuté el siguiente comando en un shell BASH.
export PROMPT_COMMAND='echo "$BASH_COMMAND" >> $HOME/my_bash_history'
pero cada vez que escribo algo en el shell y presiono regresar, aparece una línea más del archivo my_bash_history que se llena con:
echo "$BASH_COMMAND" >> $HOME/my_bash_history
echo "$BASH_COMMAND" >> $HOME/my_bash_history
echo "$BASH_COMMAND" >> $HOME/my_bash_history
echo "$BASH_COMMAND" >> $HOME/my_bash_history
echo "$BASH_COMMAND" >> $HOME/my_bash_history
echo "$BASH_COMMAND" >> $HOME/my_bash_history
¿Alguien sabe por qué está pasando eso?
Respuesta1
Como señaló Rui, "Todo lo que hay dentro 'no se evalúa". O, como lo indica el manual de BASH,
Al encerrar caracteres entre comillas simples se conserva el valor literal de cada carácter entre comillas.
Como solución para acompañar la respuesta, a PROMPT_COMMAND
continuación se presenta una forma de registrar el historial.
export PROMPT_COMMAND='echo $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//") >> $HOME/my_bash_history'