Bash:等待用户在X中完全登录

Bash:等待用户在X中完全登录,bash,Bash,我有一个bash脚本,由anacron每天启动,它需要用户不时地输入一些信息。这应该通过图形对话框来完成,比如kdialog提供的 有三种选择可供考虑: “是,今天开始任务”->运行任务 “否,今天不要开始任务”->退出脚本 错误,用户未完全登录到X->1分钟后重试 以下是我到目前为止的代码(脚本作为相关用户运行): 这是可行的,除了我看不到任何使用YesNo对话框的选项,以及区分按钮单击“否,今天不开始”和“错误,X服务器还不可供用户使用”——因为kdialog在这两种情况下都返回退出代码

我有一个bash脚本,由anacron每天启动,它需要用户不时地输入一些信息。这应该通过图形对话框来完成,比如kdialog提供的

有三种选择可供考虑:

  • “是,今天开始任务”->运行任务
  • “否,今天不要开始任务”->退出脚本
  • 错误,用户未完全登录到X->1分钟后重试
以下是我到目前为止的代码(脚本作为相关用户运行):

这是可行的,除了我看不到任何使用YesNo对话框的选项,以及区分按钮单击“否,今天不开始”和“错误,X服务器还不可供用户使用”——因为kdialog在这两种情况下都返回退出代码1


我曾考虑使用不同的程序来检查X服务器是否已经可用,但我没有想到要使用哪个。谁有更好的主意?(使用Kubuntu 10.04和KDE4,如果需要这些信息…

只需使用任何标准的X程序即可,我建议
xdpyinfo
,因为它是纯文本。

检查:

xprop -root xprop-根 xprop附带x11 utils软件包,很可能与x11一起安装

同时检查另请参见man 1 xprop中的部分:

SEE ALSO X(7), xdpyinfo(1), xwininfo(1), xdriinfo(1), glxinfo(1), xvinfo(1) 另见 X(7)、xdpyinfo(1)、xwininfo(1)、xdriinfo(1)、glxinfo(1)、xvinfo(1)
考虑将其改为一个,因为1)您可能不需要每天启动它,2)您需要找到另一个显示器。

检查env的$display功能也一样,只是速度更快,不需要额外的程序。@technosaurus。你很坏。。。从init脚本和DISPLAY env var运行的Anacron未从X客户端填充。。。。和-1代表我的-1)抱歉用复选标记等了那么久。。。但是我为我的爸爸写了这个脚本,他不经常使用电脑。最后——昨天,他告诉我,它一直在工作,没有失败。谢谢 SEE ALSO X(7), xdpyinfo(1), xwininfo(1), xdriinfo(1), glxinfo(1), xvinfo(1)