加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 多个-a,大于/小于break bash脚本

发布时间:2020-12-14 01:37:08 所属栏目:Linux 来源:网络整理
导读:我写了一个bash脚本,只在工作时间执行卷曲调用.出于某种原因,当我添加“-a”运算符时,每小时比较失败(由于某种原因,我的bash无法识别“”). 虽然脚本要大得多,但以下是相关内容: HOUR=`date +%k`if [ $HOUR 7 -a $HOUR 17 ];then //do syncfi 该脚本给我错
我写了一个bash脚本,只在工作时间执行卷曲调用.出于某种原因,当我添加“-a”运算符时,每小时比较失败(由于某种原因,我的bash无法识别“&&”).

虽然脚本要大得多,但以下是相关内容:

HOUR=`date +%k`

if [ $HOUR > 7 -a $HOUR < 17 ];
then
  //do sync
fi

该脚本给我错误:

./tracksync: (last line): Cannot open (line number): No such file

但是,这种比较不会失败:

if [ $DAY != "SUNDAY" -a $HOUR > 7 ];
then
  //do sync
fi

我的语法错了还是我的bash出了问题?

解决方法

你不能使用<和>在bash脚本中.使用-lt和-gt:

if [ $HOUR -gt 7 -a $HOUR -lt 17 ]

<和> shell使用它来执行stdin或stdout的重定向.

您所说的比较实际上是在当前目录中创建名为7的文件.

至于&&,它对shell也有特殊含义,用于创建命令的“AND列表”.

所有这些的最佳文档:man bash(和man测试有关比较运算符的详细信息)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读