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

时间:2017-05-15 13:46:00

标签: linux bash shell

运行命令时是否可以让命令行显示消息?我使用shell脚本拦截命令名称并显示消息,然后启动命令,但我想知道是否更“本机”。

类似于bashrc中的if语句,如果xyzcommand然后是echo消息并运行xyz命令,那么

作为一个例子,我正在考虑用户运行“xeyes”的内容,并出现一条显示“看着你”的消息。但是在程序执行完之后,它需要在程序运行时显示。

[user@computer bin]$ xeyes 
watching you

2 个答案:

答案 0 :(得分:1)

你可以同时运行两个命令,在后台运行它们& 例如:your-script.sh & popup_message_programm &

显示可在示例Libnotify中使用的消息 https://wiki.archlinux.org/index.php/Desktop_notifications

答案 1 :(得分:0)

感谢William Pursell的暗示!

我在/ etc / bashrc

中设置了一个函数
function xeyes {
echo ""
echo "!!!!!!!!!!!!!!!!!!!!!!!!"
echo "!!!!! Watching You !!!!!"
echo "!!!!!!!!!!!!!!!!!!!!!!!!"
echo ""
/usr/bin/xeyes     
}

这里非常重要! 不要只是将命令名称放在函数中,如果该函数要具有 SAME NAME

否则会发生的事情是bashrc函数执行echo然后运行命令,但是bashrc然后将命令名重定向回函数本身并再次回显消息.....创建无限循环。如果你想让函数与命令同名,那么你需要在函数中放置命令的完整路径(或引用完整路径的东西),如上所示。

现在当我输入xeyes时,我也收到了消息。但是当我输入" xeyes"我仍然得到有用的/ usr / bin / xeyes消息。