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

交互式外壳有历史;脚本化的 shell 没有历史。您只能从交互式 shell 询问历史,这就是别名有效但脚本无效的原因。

于 2013-11-02T01:22:23.603 回答
0

当您将其作为 shell 脚本运行时,它会生成一个没有历史记录的新 shell。

尝试像这样在同一个 shell 中运行它:

source ./history_search see

它应该可以工作。

于 2013-11-02T01:26:09.693 回答