回答:
以下はのためのものbash 4.0 or higher only
ですが、それはトリックを行います。:)
#!/bin/bash -i
history | grep sometext
動作します!やってみて。(-i
= i nteractive、bash 3.x以前では使用できないフラグ)
たとえば、shebang行がである実行可能ファイルを実行してbashシェルスクリプトを実行する#!/bin/bash
と、スクリプトは非インタラクティブシェルで実行されます。非対話型シェルの機能の1つは、履歴が無効になっていることです。そのため、スクリプトで履歴を使用できるようにするには、次のようにする必要があります。
#!/bin/bash
HISTFILE=~/.bash_history # Or wherever you bash history file lives
set -o history # enable history
history | grep git
もちろん、この場合は次のようにすることができます。
grep git ~/.bash_history
上記の両方で履歴ファイル(~/.bash_history
)が最新であることを必要とするため、ほぼ確実に最新ではありません。
シバン行が削除された後、スクリプトをどのように実行するかわかりません。ファイルをソーシング(例えば、とのこと.
)ではない歴史を持っている現在のシェルで実行するコマンドは、有効になっているので、スクリプトを実行するのと同じ。
bash
欲求不満から、おそらくv3ユーザー、笑)。少なくともマーティンにとって私の解決策は非常に役立ちました。それは(少なくとも)快適です。