0

私は本当に単純なものが欠けていると思います:

$ cat hs.sh
#!/bin/bash
echo $1
history | grep -i $1
echo $#
exit
$

ここに出力があります:

$ ./history_search sed
sed
1
$

「./hs.sh sed」の形式で使用して、履歴内のすべての sed コマンドを検索できるスクリプトを作成しようとしています。これを使用してエイリアスを作成できますが、これは正常に機能しますが、このスクリプトは作成できません。

エイリアスは次のとおりです。

alias hg='history | grep -i $1'
4

2 に答える 2

2

インタラクティブ シェルには歴史があります。スクリプト化されたシェルには履歴がありません。対話型シェルからのみ履歴を要求できるため、エイリアスは機能しますが、スクリプトは機能しません。

于 2013-11-02T01:22:23.603 に答える
0

これをシェル スクリプトとして実行すると、履歴のない新しいシェルが生成されます。

次のように同じシェルで実行してみてください。

source ./history_search see

そしてそれはうまくいくはずです。

于 2013-11-02T01:26:09.693 に答える