2017-05-17 20 views
1

bashシェルスクリプトは、実行したコマンドの履歴を残します(.bash_historyなど)。bashシェルスクリプトはコマンド履歴を残していますか?

私はそれについて興味があります。

+0

環境変数 'HISTCONTROL = ignorespace'を設定すると、' $ command'のような先頭のスペースを持つコマンドは履歴に保存されません。 – thatseeyou

+0

@thatseeyou、それはインタラクティブなものでも、非interectiveなbashシェルのものですか?スクリプトの場合は本当ですか?私のbashは '$' - ドルスペースの特別な変数でシェルスクリプトに刺すことを許しません。 – osgx

+0

@osgx '$'はプロンプトです。 +コマンドだけを入力できます。 – thatseeyou

答えて

1

いいえ、それはしていません: https://www.gnu.org/software/bash/manual/html_node/Bash-History-Facilities.html

9.1 Bashの歴史施設

(セットの組み込みを参照)が有効になっている組み込みセットに -o historyオプションは、シェルはコマンドへのアクセスを提供

以前に入力されたコマンドのリスト。

set -oコマンドを使用してください。 interactive shells(bashのオプション-iまたはログインまたは端末の通常のバース)では、history onを出力します。スクリプト(bash -c 'set -o'またはtty割り当てなしでssh machine bashを実行したとき)で使用された場合、設定されていません:history off

https://www.gnu.org/software/bash/manual/html_node/Interactive-Shell-Behavior.html

6.3.3対話型シェルの挙動 - シェルが対話的に実行されている場合、それはいくつかの方法でその動作を変更します。

  1. コマンド履歴(Bash履歴機能を参照)と履歴拡張(履歴相互作用を参照)は、デフォルトで有効になっています。 Bashは、ヒストリを有効にしたシェルが終了すると、$ HISTFILEという名前のファイルにコマンド履歴を保存します。

歴史は、いくつかのコマンドを使用して、スクリプト内で有効にすることができます:https://askubuntu.com/questions/546556/how-can-i-use-history-command-in-a-bash-script/https://unix.stackexchange.com/questions/5684/history-command-inside-bash-scriptからset -o historyを有効にしてhistoryコマンドを使用し、HISTFILEおよび(オプション)HISTTIMEFORMATを設定します。

+0

bashスクリプトを 'source script_name'コマンド(または同じ' .script_name')で実行しているかどうか不明です - http://stackoverflow.com/questions/9970058/#comment12738096_9970078 - これは現在のbashのコンテキストで実行され、いくつかの*履歴フラグが有効になっています(実際には私が覚えているように.bash_historyにコマンドを入れません)。また、サブシェルはどうでしょうか? '(some_command;)'? – osgx

関連する問題