您可以将echo
或cat
视为通用终端程序。你可以盲目调用:
echo "hello world"
例如在 bash 中,它会起作用。您将看到输出。
我正在为 X11 寻找类似的东西,你可以输入(再次盲目)并假设用户正在 X11 中工作,她/他将看到视觉输出(所以我不是问如何检测 X11,它有效,这是假设) 。
如果可以从 bash 调用 X11 子系统,它甚至可以是 X11 命令(例如创建带有关闭按钮的裸窗口)。请注意,我不是在谈论这样的问题https://stackoverflow.com/questions/7035/how-to-show-a-message-box-from-a-bash-script-in-linux因为像“zenity”这样的工具(毫无疑问,它很有用)默认情况下是不安装的。
重要提示:我需要一些持久的东西,一些会一直保留到电源关闭或用户明确关闭它的东西。
答案1
确实没有这样的命令。 (在合理范围内)也不可能有。例如,用户可能正在使用全屏应用程序,并且他/她的合成窗口管理器拒绝在其上放置任何内容(因为这会破坏全屏体验)。
当然,盲目打字是行不通的——终端可能无法聚焦。您最终可能会在 Stack Exchange 答案而不是终端中输入非常棒的命令,当然它不会运行。
如果你想要一个命令,你可以运行它大概显示某些内容,Xorg 附带的基本内容是一个不错的猜测:xlogo
、xev
、xfd
、xmessage
、xeyes
等。其中,xmessage
有点像 zenity,但更原始(但可能更容易安装)并且xeyes
肯定会引起用户的注意。请记住,在 shell 脚本中,您可以检测“未安装”(退出代码 127)并尝试列表中的另一个。
如果你想传达有用信息给用户,并且用户正在使用现代桌面环境,最好的选择是使用notify-send
(libnotify 的一部分)发送桌面通知。这应该持续到用户关闭它为止。