如何在shell脚本中为变量指定特定时间(例如12:00)?

如何在shell脚本中为变量指定特定时间(例如12:00)?,shell,Shell,我一直试图给脚本中的一个变量分配一个时间(00:00),但它只是给了我下面这个错误 关于我的代码的简要说明: 我的脚本必须检查系统时间。一旦时间到达凌晨12:00,当前脚本将调用另一个脚本 function checkTime(){ while [ : ] do time= "00:00" currentTime= $( date -d +"%H:%M") if [ "$currentTime" = "$time" ] ; then echo $(./

我一直试图给脚本中的一个变量分配一个时间(00:00),但它只是给了我下面这个错误

关于我的代码的简要说明: 我的脚本必须检查系统时间。一旦时间到达凌晨12:00,当前脚本将调用另一个脚本

function checkTime(){
while [ : ] 
do 
    time= "00:00"
    currentTime= $( date -d +"%H:%M")
    if [ "$currentTime" = "$time" ] ;
    then
    echo $(./Performance.sh)
fi
done 
}
出现的错误是:

line 5: 00:00: command not found
date: invalid date ‘+%H:%M’

尝试删除time=和“00:00”之间的空格,如下所示:

致:

Bash对空间非常挑剔


请对currentTime执行相同操作。

这将起作用

function checkTime(){
while [ : ] 
do 
    time="00:00"
    currentTime=$( date +"%H:%M")
    if [ "$currentTime" = "$time" ] ;
    then
    echo $(./Performance.sh)
fi
done 
}
更改

  • 删除变量初始化之间的间距

  • 使用
    date+%H:%M”
    而不是
    date-d+%H:%M”
    -d选项更改为字符串,%H:%M已在字符串中打印,因此无需打印


  • 请始终在脚本上使用。它会帮你找出很多常见的错误。谢谢!但同样的错误仍然是阿帕林努克斯?您可以使用
    crontab
    。只需在
    crontab-e
    中添加一行代码:
    00***/your/command
    就行了!!谢谢,但我希望它在这一行echo$(./Performance.sh)之后退出循环,如何在这一行
    echo$(./Performance.sh)之后?
    break
    time="00:00"
    
    function checkTime(){
    while [ : ] 
    do 
        time="00:00"
        currentTime=$( date +"%H:%M")
        if [ "$currentTime" = "$time" ] ;
        then
        echo $(./Performance.sh)
    fi
    done 
    }