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