5

有没有办法用脚本/钩子修改在 bash 提示符下输入的每个命令?

在我的理想世界中,脚本会在用户输入命令后但在按下 Enter 键之前触发。它将获取命令字符串作为参数,对其进行修改并将其交给 bash 执行(因此一切都会透明地发生)。

我会将此钩子用于一些无法使用别名完成的特定于公司的替换,但最重要的是,如果可以做到这一点,我很感兴趣。

我知道一些技巧可以在执行最后一个命令(trap 'function' DEBUG等等)后对其执行某些操作,因为有很多关于该场景的问题,但这在这里没有帮助。

谢谢和亲切的问候!

4

1 回答 1

3

你想要的是一种命令完成——在我看来。

bash 行编辑背后有很多东西:可绑定的 readline 命令,或命令完成和命令替换。

首先,您可以编写和编译自己的 bash 内置函数: http ://www.drdobbs.com/shell-corner-bash-dynamically-loadable-b/199​​102950

接下来,您可以通过人们所说的编辑行或读取行来更改 bash:也许从这里开始:http: //www.math.utah.edu/docs/info/features_7.html

http://www.gnu.org/software/bash/manual/html_node/Command-Line-Editing.html

于 2013-04-06T12:17:10.487 回答