运行命令时是否可以让命令行显示消息?我使用shell脚本拦截命令名称并显示消息,然后启动命令,但我想知道是否更“本机”。
类似于bashrc中的if语句,如果xyzcommand然后是echo消息并运行xyz命令,那么
作为一个例子,我正在考虑用户运行“xeyes”的内容,并出现一条显示“看着你”的消息。但是在程序执行完之后,它需要在程序运行时显示。
[user@computer bin]$ xeyes
watching you
答案 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消息。