有没有办法用脚本/钩子修改在bash提示符下输入的每个命令?
在我的理想世界中,脚本会在用户输入命令后触发,但在按下Enter键之前。它会将命令字符串作为参数,修改它并将其交给bash执行(所以一切都会透明地发生)。
我会使用这个钩子进行某些公司特定的替换,这些替换无法使用别名来完成,但最重要的是我感兴趣的是否可以这样做。
我知道有些黑客在执行完后会使用最后一个命令(trap 'function' DEBUG
之类的东西)执行某些操作,因为有很多关于该方案的问题,但这里没有任何帮助。
谢谢和亲切的问候!
答案 0 :(得分:2)
你想要的是一种命令完成 - 在我看来。
bash行编辑背后有很多东西:可绑定的readline命令,或命令完成和命令替换。
首先你可以编写自己的bash内置函数编写和编译: http://www.drdobbs.com/shell-corner-bash-dynamically-loadable-b/199102950
接下来,您可以通过人们调用编辑行或readline来改变bash: 从这里开始吧: http://www.math.utah.edu/docs/info/features_7.html
http://www.gnu.org/software/bash/manual/html_node/Command-Line-Editing.html