我们已经整合了一个perl脚本,它基本上查看传递给它的参数,检查是否正在创建或修改文件,然后将其保存在mysql数据库中,以便以后可以轻松访问。这是有趣的部分,如何在终端中键入的所有命令之前运行此perl脚本。我需要制作这个虚拟证明,这样人们就不会忘记运行它。
对不起,我没有正确地提出这个问题。我想要做的是为每个命令添加前缀,使得每个命令都会像“./run.pl ls”那样运行。这样我可以跟踪文件更改,如果命令是mv或者它创建一个out文件,例如。该脚本非常关注这一点,但我不知道如何无缝地运行它给用户。
我正在使用bash终端运行ubuntu服务器。
由于
答案 0 :(得分:4)
如果我理解正确,你需要在运行每个命令之前执行一个函数,类似于preexec
中的precmd
和zsh
。
不幸的是bash
没有本机支持,但您可以使用DEBUG
陷阱来实现。
Here是应用此方法的示例代码。
This page也提供了一些有用的信息。
答案 1 :(得分:1)
您可以修改~/.bashrc
文件并在那里启动脚本。请注意,每个用户都(并且应该)仍然拥有修改此文件的权限,可能会删除脚本调用。
/etc/bash.bashrc
文件是系统范围的,只能由root进行更改。
当创建新的bash实例(例如新终端)时,将执行这些.bashrc
。
它与系统shell sh
不同,在Ubuntu系统上是dash
。