我有一个每天运行多次的bash脚本。运行的次数取决于脚本运行的时间长短。在脚本的某一点上,我希望能够提供输入。基本上,我希望脚本在它正在写入的日志文件中提供输出请求输入。我认为最好的方法是让脚本进入“infinte”while循环,每5分钟检查一个文件是否存在。我知道如何检查文件是否存在,但我仍然相当新的bash脚本,所以我不知道如何编写代码进入while循环。我很感激你的帮助。
答案 0 :(得分:0)
您提出的问题的解决方案是:
# Wait for file to be created
while [ ! -f "input_file" ]
do
sleep 5m
done
# Do something now that the file exists
最好让cronjob每5分钟运行一次,如果文件尚不存在则退出。
答案 1 :(得分:0)
如果安装了zenity
package,可以使用它来创建自定义gui对话框。在我的测试中,当从cron
启动的脚本中使用时,这似乎正常。例如,我们有一个小例子脚本,我称之为“proceed.sh”:
#!/bin/bash if zenity --display=:0 --question; then zenity --display=:0 --info --text="You pressed yes" else zenity --display=:0 --info --text="You pressed no" fi
并添加一个cron条目(每分钟运行一次 - 你可能不希望这样):
* * * * * ~/proceed.sh
请注意,我们需要硬编码对话框所显示的内容,因为cron上下文中的脚本不会知道。
zenity有很多选项可以让你创建自定义对话框。