#!/bin/bash
if [ `date +%u` -lt 6 && `date +%H` == '19' ] ; then
echo 'Sorry, you cannot run this program today.'
else
echo 'yes, you can run today'
fi
上面的脚本是在工作日和每晚 7 点运行一个程序。我检查了空格,它仍然返回错误: date.sh: 2: [: missing ]
将其更改为:
#!/bin/bash
if [ `date +%u` -lt 6 ] && [ `date +%H` == '19' ] ; then
echo 'Sorry, you cannot run this program today.'
else
echo 'yes, you can run today'
fi
请注意,这[
只是test
命令及其]
最后一个参数的简写。运算符的&&
使用与任何其他命令行一样,例如cd /home && ls
您的代码有两个问题。
第一个是一个简单的错字:date %H
应该是date +%H
.
第二个是您看到的错误的原因:&&
is not the right operator to use。它分隔命令,而您的if
条件实际上应该是一个;bash 在 ] 的末尾寻找 ] [ `date +%u` -lt 6
,没有找到它,并且出错了。你想-a
改用。