在linux上执行另一个命令时执行一个命令

在linux上执行另一个命令时执行一个命令,linux,shell,Linux,Shell,我想知道Linux上是否有一个“侦听”命令。我的意思是,每次执行命令时,例如sccs edit file、chmod+x file都会执行如果这只是供您自己使用,您可以使用相同的名称创建别名或shell函数: 在bash中: alias ls="ls -l" 然后,无论何时执行ls,它实际上都执行ls-l(之后添加任何额外的参数) 别名仅在重命名命令和/或添加一些初始参数时有用;你不能做更复杂的事情。当然,您可以让别名运行脚本,并以这种方式执行任何操作 或者,您可以创建一个shell函数(例如

我想知道Linux上是否有一个“侦听”命令。我的意思是,每次执行命令时,例如sccs edit file、chmod+x file都会执行

如果这只是供您自己使用,您可以使用相同的名称创建别名或shell函数:

在bash中:

alias ls="ls -l"
然后,无论何时执行
ls
,它实际上都执行
ls-l
(之后添加任何额外的参数)

别名仅在重命名命令和/或添加一些初始参数时有用;你不能做更复杂的事情。当然,您可以让别名运行脚本,并以这种方式执行任何操作

或者,您可以创建一个shell函数(例如,将其放入
.bashrc
文件中):

同样,在bash中:

function sccs () {
   /usr/bin/sccs "$@"
   status=$?
   chmod +x "$1"
   return $status
}

我不知道sccs的命令行是什么样子的,所以我希望您需要在其中做一些更聪明的事情,但我希望您能理解。

如果这只是供您自己使用,您可以使用相同的名称创建别名或shell函数:

在bash中:

alias ls="ls -l"
然后,无论何时执行
ls
,它实际上都执行
ls-l
(之后添加任何额外的参数)

别名仅在重命名命令和/或添加一些初始参数时有用;你不能做更复杂的事情。当然,您可以让别名运行脚本,并以这种方式执行任何操作

或者,您可以创建一个shell函数(例如,将其放入
.bashrc
文件中):

同样,在bash中:

function sccs () {
   /usr/bin/sccs "$@"
   status=$?
   chmod +x "$1"
   return $status
}


我不知道
sccs
命令行是什么样子的,所以我希望您需要在其中做一些更聪明的事情,但我希望您能理解。

sccs?我回到了过去?不,因为我使用的是Chrome v27,所以我不能拥有。@特洛伊敌人:是的,你拥有。我的chrome是v28-P@ams是的,但是当SCCS还在使用的时候,Chrome是v-82323。你可能想看看inotify(7)(应该有一个手册页),然后选择你最喜欢的语言,它有一个API(例如Python、Perl、C等等)。对于Python,请参见此处:@trojanfoe是的,它确实很古老。我正试图用SVN取代它,但这需要一些时间,你知道管理层总是拒绝任何更改。SCCS?我回到了过去?不,因为我使用的是Chrome v27,所以我不能拥有。@特洛伊敌人:是的,你拥有。我的chrome是v28-P@ams是的,但是当SCCS还在使用的时候,Chrome是v-82323。你可能想看看inotify(7)(应该有一个手册页),然后选择你最喜欢的语言,它有一个API(例如Python、Perl、C等等)。对于Python,请参见此处:@trojanfoe是的,它确实很古老。我正试图用SVN来取代它,但这需要一些时间,你知道管理层总是拒绝任何改变。我被欺骗,也犯了同样的错误。但是OP希望在文件更改时收到通知,然后自动对文件执行,例如
chmod
sccs
所做的更改只是一个例子;我想其他程序所做的更改也会导致这一事件。@Alfe:问题并不是这样说的。也许应该?我说不出来。谢谢你的回答。我的问题是在Linux上侦听命令的一般方法,作为一个示例,我给出了sccs edit和chmod+XX,如果您只对某些命令执行特殊操作,为什么要侦听所有命令?要么你在做日志记录,要么你在做“隐藏的魔法”,但我怀疑你真的需要把两者混淆。然后就截取你关心的那些。我被骗去想同样的错误。但是OP希望在文件更改时收到通知,然后自动对文件执行,例如
chmod
sccs
所做的更改只是一个例子;我想其他程序所做的更改也会导致这一事件。@Alfe:问题并不是这样说的。也许应该?我说不出来。谢谢你的回答。我的问题是在Linux上侦听命令的一般方法,作为一个示例,我给出了sccs edit和chmod+XX,如果您只对某些命令执行特殊操作,为什么要侦听所有命令?要么你在做日志记录,要么你在做“隐藏魔法”,但我怀疑你真的需要把这两者混淆。然后拦截你关心的那些。