#!/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
Run Code Online (Sandbox Code Playgroud)
上面的脚本是在工作日和每晚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
Run Code Online (Sandbox Code Playgroud)
请注意,这[
只是test
命令及其]
最后一个参数的简写.例如,&&
操作符与任何其他命令行一样使用cd /home && ls
您的代码有两个问题.
首先是一个简单的拼写错误:date %H
应该是date +%H
.
第二个是你看到错误的原因:&&
不是正确的操作符.它将命令分开,而你的if
条件应该是单一的; bash查找]结束时[ `date +%u` -lt 6
,找不到它,并出错.你想要-a
改用.
归档时间: |
|
查看次数: |
14807 次 |
最近记录: |