2015-12-07 5 views
6

私たちが知っているように、 'history'コマンドはLinuxサーバーのコマンドライン履歴を表示し、 'history -c'はこのコマンドライン履歴をクリア/削除するコマンドです。bashスクリプトで 'history-c'コマンドを使用するにはどうすればいいですか?

私はbashスクリプトを通してこのコマンドを起動する必要があります。次のようにスクリプトは次のように

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

出力は、次のとおりです。

cleared 

出力、歴史-Cなどの印刷「クリア」は歴史を削除されていませんけれども。

これを達成する方法については、私のbahsスクリプトで "history-c"コマンドを使用して、コマンドラインの履歴を削除する方法をガイド/提案できれば嬉しいです。他の方法でも削除できます私のbashスクリプトを通してコマンドラインの履歴を表示します。

おかげ&よろしく、 Navya

+0

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

答えて

2

history -cは、現在のシェルの履歴をクリアし、〜/の.bash_historyを削除しません。

しかし、スクリプトを実行すると、現在のシェルはスクリプトを実行するための新しいシェルを作成し、スクリプトの実行時にそのシェルを終了します。

代わりに、現在のシェルでスクリプトを実行するには、スクリプトのソースを指定する必要があります。スクリプトの名前がfoo.shの場合は、実行してみてください. ./foo.sh

どちらの場合でも、作成したスクリプトはコマンドを実行しません。このような何かにそれを変更します。

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

あなたのNikhilをありがとうございます。 。 ./foo.shが今働いています:)。このコマンドをSAP Host Agentのカスタムオペレーションファイルで使用したいと思いますが、エラーが発生します。 rootユーザーの履歴を削除する他の方法はありますか?またはそれを含めるための方法。操作ファイルの./foo.shコマンド?あなたの助けに感謝します。ありがとう&ありがとう、Navya –

関連する問題