当使用udev规则(RUN Command)插入USB设备并使用notify-send显示通知时,我正在运行脚本。
我希望它提示用户输入USB的一些输入。我该怎么做?
答案 0 :(得分:1)
由于您运行的X会话对于udev是未知的,因此udev不知道发送给谁,并且X可能有多个活动会话正在运行。要使用Zenity类型的脚本,您还需要运行当前X会话的X-Auth cookie。现在哪个从家里变为临时位置,你不会有修复脚本来破解它。
有很多方法可以做你需要的,但这取决于你想做多少工作。
通知 - 仅发送显示信息,因此无法正常工作。与上述建议一样,您需要输入zenity或kdialog类型。但更重要的是,您需要当前会话,因此您可能希望使用gnome-session-properties挂接脚本。这样,每次登录时都会运行挂钩。
这只是一种挂钩gnome-session-propoties的方法
#!/bin/sh
mkfifo /tmp/usb_notify
mkfifo /tmp/usb_feedback
while ( true ) do {
CALLBACK=`cat /tmp/usb_notify`
# check CALLBACK for some specific password :) if you needed
notify-send "USB plugged in something, input something for me!";
USERINPUT=$(zenity --entry --title "USB plugged in" --text "Please enter something")
echo $USERINPUT > /tmp/usb_feedback
} done;
然后你可以在udev RUN中为你的USB设备挂钩
#!/bin/sh
echo "password" > /tmp/usb_notify
REPLY=`cat /tmp/usb_feedback`
# then you can do whatever you need to with the feedback
答案 1 :(得分:0)
你可以使用zenity。在你的shell脚本中:
USERINPUT = $(zenity --entry --title“USB plug in” - text“请输入内容”)
有关完整参考,请参阅:http://library.gnome.org/users/zenity/stable/
还有一个名为kdialog的KDE-couterpart。