Linux:运行命令时如何显示消息?

Linux:运行命令时如何显示消息?,linux,bash,shell,Linux,Bash,Shell,运行命令时,是否可以使命令行显示消息?我使用shell脚本截取命令名和显示消息,然后启动命令,但我想知道是否有更“本机”的东西 类似于bashrc中的if语句,表示if xyzcommand,然后回显消息并运行xyz命令。 作为一个例子,我想到了一些类似于用户运行“xeyes”的东西,出现了一条消息,上面写着“监视您”。但不是在程序执行之后,它需要在程序运行时显示 [user@computer bin]$ xeyes watching you 您可以同时运行两个命令,方法是在后台使用& 示例

运行命令时,是否可以使命令行显示消息?我使用shell脚本截取命令名和显示消息,然后启动命令,但我想知道是否有更“本机”的东西

类似于bashrc中的if语句,表示if xyzcommand,然后回显消息并运行xyz命令。

作为一个例子,我想到了一些类似于用户运行“xeyes”的东西,出现了一条消息,上面写着“监视您”。但不是在程序执行之后,它需要在程序运行时显示

[user@computer bin]$ xeyes 
watching you

您可以同时运行两个命令,方法是在后台使用& 示例:
your-script.sh&弹出消息\u程序&

显示可在示例Libnotify中使用的消息
感谢威廉·珀塞尔的提示

我在/etc/bashrc中设置了一个函数

function xeyes {
echo ""
echo "!!!!!!!!!!!!!!!!!!!!!!!!"
echo "!!!!! Watching You !!!!!"
echo "!!!!!!!!!!!!!!!!!!!!!!!!"
echo ""
/usr/bin/xeyes     
}
这里非常重要不要如果函数的名称与相同,只需在函数中输入命令名即可

否则,bashrc函数会执行回显,然后运行命令,但是bashrc会将命令名重定向回函数本身,并再次回显消息……从而创建一个无休止的循环。如果希望函数与命令同名,则需要将命令的完整路径(或引用完整路径的内容)放入函数中,如上所示


现在,当我键入xeyes时,我也会收到消息。但是当我键入“which xeyes”时,我仍然会得到有用的/usr/bin/xeyes消息。

iTerm2使用“Shell集成”执行类似的操作,因此您可以搜索它。您可以使用函数来覆盖它,而不是在bashrc中使用if语句:
xeyes(){echo waiting you;command xeyes;}