2012-10-03 35 views
0

我们已经把一个perl脚本放在一起,它基本上查看了正在传递给它的参数,检查是否正在创建或修改一个文件,然后将它保存在mysql数据库中,以便它很容易稍后访问。这里有一个有趣的部分,我如何让这个perl脚本在终端中键入的所有命令之前运行。我需要做出这个假证明,以便人们不会忘记运行它。如何跟踪文件的创建和修改

对不起,我没有正确地制定这个问题。我想要做的是在每个命令前添加一行,这样每个命令都可以运行,例如“./run.pl ls”。这样,我可以跟踪文件更改,如果命令是mv或者它创建out文件例如。该脚本非常注意,但我只是不知道如何无缝地运行给用户。

我正在使用bash终端运行ubuntu服务器。

感谢

+1

这还不清楚。你想要什么时候运行这个脚本:当用户第一次登录时?当他们第一次打开一个终端?每进入一个命令之前?仅在特定命令之前? – dan1111

+1

“*本质上看看传递给它的参数是否正在创建或修改文件,然后将其保存在mysql数据库中*” - *传递给它的参数是什么* *谁*正在创建或修改文件? *什么*保存到数据库? – ArjunShankar

回答

1

可以修改~/.bashrc文件,并有启动脚本。请注意,每个用户都会(也应该)仍然拥有修改此文件的权限,可能会删除脚本调用。

/etc/bash.bashrc文件是系统范围的,只能由root进行更改。

这些.bashrc s在创建bash的新实例(例如新终端)时执行。

它与Ubuntu系统上的系统shell不同,如sh

4

如果我理解正确,您需要在运行每个命令之前执行一个函数,类似于和precmdzsh

不幸的是bash对此没有本地支持,但您可以使用DEBUG陷阱来完成。

Here是应用此方法的示例代码。

This page也提供了一些有用的信息。

相关问题