Como posso usar o comando history em um script bash?

0

Eu tento usar o comando history em um script bash mas não funcionou.

O código do arquivo bash:

#!/bin/bash

# Copy history to file history 

#cd /media/saleel_almajd/Study/linux/my_scripts/
echo "start Copy history to /media/saleel_almajd/Study/linux/my_scripts/history.txt"
export HISTTIMEFORMAT='%F %T ' #to make history and date apear
history >> /media/saleel_almajd/Study/linux/my_scripts/history.txt
#cd 
echo "... copy done ..."
#history -c
echo "..... history cleared ..... "

echo "___ Done Successfully ___"
    
por Saleel Almajd 06.11.2014 / 23:13

2 respostas

4

history está desativado por padrão em shells não interativos por bash . Você tem que habilitá-lo.

O script deve ficar assim:

#!/bin/bash

HISTFILE=~/.bash_history  # Set the history file.
HISTTIMEFORMAT='%F %T '   # Set the hitory time format.
set -o history            # Enable the history.

file="/media/saleel_almajd/Study/linux/my_scripts/history.txt"

history >> $file          # Save the history.
history -cw               # Clears the history of the current session.

Referência:

por muru 06.11.2014 / 23:21
1

Quando você executa o script, ele é executado em outro shell em segundo plano e não no atual. Então, o efeito para este script estará em outro shell. Se você quiser fazer efeito no shell atual, você deve preceder o ponto antes do script. Altere o diretório para seu script atual, em seguida, emita: . scriptname em vez de ./ scriptname

    
por Islam 07.11.2014 / 12:31

Tags