首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用shell bash脚本的程序日程提醒

使用shell bash脚本的程序日程提醒
EN

Stack Overflow用户
提问于 2017-12-21 14:58:39
回答 1查看 482关注 0票数 1

我写了关于日程提醒的脚本,但当我设置时间时,这个程序不能显示。我认为这个脚本总体上是正确的,但它仍然是错误的。请帮帮我,我的脚本出了什么问题。谢谢。我对我的英语感到抱歉

代码语言:javascript
复制
   nama=$(zenity --entry --text="Enter your name:" --entry-text " ");
   date=$(zenity --calendar --text "choose your event's day" --date-format=%A-%B-%Y);

   tang=$(zenity --forms --date-format=`date | awk ‘{print $1 $3,$2,$6}’ `| time :`date | awk '{print $4}'` );

    nambah=$(zenity --forms --ok-label="Done" --cancel-label="Cancel" --height=100 \
--title "Time" \
--text "Input Time(format 24)" \
--add-entry "Input Hours:Minutes:Second");

  text=$(zenity --text-info --title "create event" --editable --font=Purisa);

 a=1
 while (a==1)
 do
 cek="`date | awk '{print $4}'`";
 if [ "$nambah" == "$cek" ]
 then
 echo -n
 d=`echo "Time: $nambah"`
 fi
 done

 out=$(zenity --info --text "REMEMBER!! $nama today is $date you have event $d

 $text ");
EN

回答 1

Stack Overflow用户

发布于 2017-12-21 16:05:34

第一个问题来自于这样一个事实:您的cek永远不等于您的nambah(17:00:00)将cek赋值转换为

代码语言:javascript
复制
cek="`date +%H:%M+%S`";

然后,您还需要比较if语句中的日期,而不仅仅是时间!

代码语言:javascript
复制
date=$(zenity --calendar --text "choose your event's day" --date-format=%Y%m%d);

在你的循环中:

代码语言:javascript
复制
cektime="`date '+%H:%M+%S'`";
cekdate="`date '%Y%m%d'`";
if [ "$nambah" == "$cektime" -a "$date" == "$cekdate" ]

最后但同样重要的是,您还需要在活动等待循环中添加一个break

如果你编译了你的代码(你可以在测试后删除echo ):

代码语言:javascript
复制
#!/usr/bin/env bash

nama=$(zenity --entry --text="Enter your name:" --entry-text " ");
date=$(zenity --calendar --text "choose your event's day" --date-format=%Y%m%d);

tang=$(zenity --forms --date-format=`date | awk ¥{print $1 $3,$2,$6}¦ `| time :`date | awk '{print $4}'` );

nambah=$(zenity --forms --ok-label="Done" --cancel-label="Cancel" --height=100 \
--title "Time" \
--text "Input Time(format 24)" \
--add-entry "Input Hours:Minutes:Second");

text=$(zenity --text-info --title "create event" --editable --font=Purisa);

a=1
while (a==1)
do
    cekdate="`date '+%Y%m%d'`";
    cektime="`date '+%H:%M:%S'`";
    echo "echo cektime: $cektime"
    echo "echo cekdate: $cekdate"
    echo "nambah: $nambah"
    echo "date: $date"
    if [ "$nambah" == "$cektime" -a "$date" == "$cekdate" ]
    then
        echo -n
        d=`echo "Time: $nambah"`
        break
    fi
done

out=$(zenity --info --text "REMEMBER!! $nama today is $date you have event $d $text ");

但是,我建议使用一些cron来更改活动等待

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47919558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档