如何使shell在每个用户输入命令之前执行命令

时间:2015-04-21 13:00:48

标签: linux bash shell

我需要在shell开始执行用户传递的命令之前执行命令,我尝试使用带有DEBUG信号的陷阱,但这没有发生。

我在/ etc / profile中注册了陷阱。

  

陷阱'echo“my_command”'DEBUG

现在发生的事情是:

  

SW0:根:根> PWD

     

/根

     

my_command

     

SW0:根:根>

我想要的是:

  

SW0:根:根> PWD

     

my_command

     

/根

     

SW0:根:根>

使用Bash版本:

  

GNU bash,版本2.04.0(1)-release(powerpc-unknown-linux-gnu)

我希望在用户在shell中输入的每个命令之前执行我的命令,我该怎么做?

请帮助我,我尝试了很多谷歌搜索,但这没有帮助。

2 个答案:

答案 0 :(得分:1)

您可能正在寻找类似PROMPT_COMMAND的内容:

  

在Bash显示提示之前,此变量的内容将作为常规Bash命令执行。

答案 1 :(得分:0)

我的例子

function preexec() {
  echo "Preexec command"
}

trap 'preexec' DEBUG

结果是

# pwd
Preexec command
/home/robert