2015-12-07 18 views
6

Come sappiamo, il comando 'history' visualizza la cronologia della riga di comando del server Linux e 'history -c' è il comando per cancellare/cancellare questa cronologia della riga di comando.Come utilizzare il comando 'history-c' in uno script bash?

Devo attivare questo comando tramite il mio script bash. Script è il seguente,

#! /bin/bash 
var=`history -c` 
if [ $? -eq 0 ] 
then 
echo "cleared" 
echo $var 
fi 

uscita è la seguente:

cleared 

Anche se la sua stampa "cancellata" come l'uscita, la storia-c non è l'eliminazione della storia.

Sarebbe bello se tu possa guidare/suggerire su come posso ottenere questo, cioè utilizzando il comando "history-c" nel mio script bahs per cancellare la cronologia della riga di comando. O c'è un altro modo in cui posso cancellare cronologia della riga di comando tramite il mio script bash.

Grazie & Saluti, Navya

+0

https://askubuntu.com/questions/546556/how-can-i-use-history-command-in-a-bash-script – dsm

risposta

2

history -c cancella la storia per la shell corrente, e non cancellare ~/.bash_history.

Ma quando si esegue uno script, la shell corrente crea una nuova shell per eseguire lo script ed esce da tale shell al termine dello script.

Invece, per eseguire uno script nella shell corrente è necessario generare lo script. Se il nome del tuo script è foo.sh, prova ad eseguire . ./foo.sh

Ma in entrambi i casi, lo script che hai scritto non esegue il comando. Modificarlo per qualcosa di simile:

#! /bin/bash 
history -c 
if [ $? -eq 0 ] 
then 
echo "cleared" 
fi 
+0

Grazie Nikhil. . ./foo.sh funziona ora :). Vorrei utilizzare questo comando nel file delle operazioni personalizzate di SAP Host Agent, ma genera un errore. C'è un altro modo per cancellare la cronologia per l'utente root? O qualsiasi modo per includere il. ./foo.sh comando nel file di operazioni? Il tuo aiuto sarà apprezzato. Grazie e saluti, Navya –

Problemi correlati