首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Shell脚本错误

Shell脚本错误
EN

Stack Overflow用户
提问于 2013-05-15 16:08:33
回答 4查看 127关注 0票数 2

谁能说出这个脚本出了什么问题吗?因为我得到的错误如下

代码语言:javascript
复制
./timer: line 9: [13: command not found
./timer: line 12: [13: command not found

我的脚本如下所示

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

   while :
     do
    HOUR=$(date +%H)
    MINUTE=$(date +%M)
    SECOND=$(date +%S)

        if [$HOUR == 13] && [$MINUTE == 12] && [$SECOND == 1]
     then ./binary

    elif [$HOUR == 18] && [$MINUTE == 30] && [$SECOND == 1] 
     then ./binary
    fi

    done 
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-05-15 16:10:42

在…之间留个空格。示例:

代码语言:javascript
复制
if [$HOUR == 13] && [$MINUTE == 12] && [$SECOND == 1]

应该变成

代码语言:javascript
复制
if [ $HOUR == 13 ] && [ $MINUTE == 12 ] && [ $SECOND == 1 ]
票数 2
EN

Stack Overflow用户

发布于 2013-05-15 16:10:34

我认为您必须使用"${VARIABLE}",并注意方括号中的空格

这将提供:

代码语言:javascript
复制
if [ "${HOUR}" == 13 ] && [ "${HOUR}" == 12 ] && [ "${HOUR}" == 1 ]

希望这能有所帮助!

票数 1
EN

Stack Overflow用户

发布于 2013-05-15 16:13:25

bash中的测试操作符需要在左方括号和右方括号之间留出空格,请尝试

代码语言:javascript
复制
[ $HOUR == 13 ] && [ $MINUTE == 12 ] && [ $SECOND == 1 ]

代码语言:javascript
复制
[ $HOUR == 18 ] && [ $MINUTE == 30 ] && [ $SECOND == 1 ]

这里有一个您可能会发现有用的http://tldp.org/LDP/abs/html/testconstructs.html链接

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

https://stackoverflow.com/questions/16559858

复制
相关文章

相似问题

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