我使用这个创建了一个无限循环的 bash 脚本回答我想要一个 GUI(只需单击一两次)来随时停止无限循环。我该怎么做?
编辑以进一步阐明 GUI(我的偏好)-
它应该类似于 gnome shell 扩展在下拉菜单中提供选项。像这样
答案1
这将创建一个带有按钮的 XMessage 窗口并运行循环,该循环不断检查给定文件是否存在文件名变量。单击按钮时,将创建文件,然后循环结束。
gui(){
xmessage "Click to stop loop" -buttons Stop:7
if [ "$?" -eq 7 ]; then
touch "$filename"
fi
}
filename='/tmp/loopandgui'
gui &
while true; do
sleep 0.1
if [ -f "$filename" ]; then
rm "$filename"
break
fi
done
请注意,关闭窗口不会停止循环,您需要按 XMessage 的“停止”按钮。如果您想停止循环,即使 XMessage 以任何方式被关闭,只需从中删除 if 条件即可gui():
gui(){
xmessage "Click to stop loop" -buttons Stop:7
touch "$filename"
}