2015-12-07 14 views
6

Jak wiemy, polecenie "historia" wyświetla historię wiersza poleceń serwera Linux, a "historia -c" to polecenie usunięcia/usunięcia tej historii wiersza poleceń.Jak używać polecenia "history-c" w skrypcie basha?

Muszę wyzwolić to polecenie przez mój skrypt basha. Scenariusz jest następujący,

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

wyjścia jest następujący:

cleared 

Choć jego druk „wyczyszczone” jako wyjścia, historii-C nie jest usuwanie historii.

Byłoby wspaniale, gdyby można było wskazać/doradzić, w jaki sposób mogę to osiągnąć, tj. Używając polecenia "history-c" w moim skrypcie bahs, aby usunąć historię linii poleceń. Czy istnieje inny sposób, w jaki mogę usunąć historia linii poleceń poprzez mój skrypt bash.

Dzięki & Pozdrawiam, Navya

+0

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

Odpowiedz

2

history -c czyści historię aktualnej powłoki, a nie usuwać ~/.bash_history.

Jednak po uruchomieniu skryptu bieżąca powłoka tworzy nową powłokę, która uruchamia skrypt i opuszcza powłokę po zakończeniu wykonywania skryptu.

Zamiast tego, aby wykonać skrypt w bieżącej powłoce, musisz pobrać skrypt. Jeśli nazwa twojego skryptu to foo.sh, spróbuj uruchomić . ./foo.sh

Ale w obu przypadkach skrypt, który napisałeś, nie wykonuje polecenia. Zmodyfikować go do czegoś takiego:

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

Dziękuję Nikhil. . ./foo.sh działa teraz :). Chciałbym użyć tego polecenia w niestandardowym pliku operacji agenta hosta SAP, ale generuje on błąd. Czy istnieje inny sposób usunięcia historii dla użytkownika root? Lub w dowolny sposób dołączyć. ./foo.sh w pliku operacji? Twoja pomoc będzie doceniona. Dzięki i Pozdrawiam, Navya –

Powiązane problemy