【问题标题】:Defining Variable Within if/fi statement In A Unix Bash Script在 Unix Bash 脚本中的 if/fi 语句中定义变量
【发布时间】:2014-02-02 03:30:16
【问题描述】:

大家早上好,

目前,我正在尝试在检查当前系统时间的 bash 脚本中的 if/fi 语句中定义一个变量,并作为当前系统时间的结果,定义一个变量:

TIME=`date +%h%m%s`

if [ ${TIME} -ge 050000 ]; then RUNHR=00 fi
if [ ${TIME} -ge 110000 ]; then RUNHR=06 fi
if [ ${TIME} -ge 170000 ]; then RUNHR=12 fi
if [ ${TIME} -ge 225900 ]; then RUNHR=18 fi

然而,在我这样做之后,RUNHR 值不会保持不变并且从未定义过。

有人知道如何解决这个问题吗?

【问题讨论】:

  • 这里的问题数量:(1) 第 1 行= 后面的空格。(2) 在所有行上设置RUNHR 值后缺少;
  • 您好 devnull。感谢回复!当我尝试将编码设置为线程“代码”布局时,第 1 行 = 之后的空格是一个错字。另外,我添加了 ;在每个 RUNHR 值之后,现在我得到一个“预期的整数表达式”错误。
  • date 格式不正确。请改用TIME=$(date +%H%M%S)
  • 感谢 devnull!这完全解决了问题,我的 bash 脚本现在运行顺利!非常感谢!

标签: linux bash unix if-statement centos


【解决方案1】:

Linux 脚本的语法不灵活。

首先你必须使用 HM 而不是 hm ,小 hm 会给你字符串中的日期。

这是经过测试的。

TIME=`日期+%H%M%s` 如果 [ ${TIME} -ge 050000 ];然后 运行时=00 菲 如果 [ ${TIME} -ge 110000 ];然后 RUNHR=06 菲 如果 [ ${TIME} -ge 170000 ];然后 运行小时=12 菲 如果 [ ${TIME} -ge 225900 ];然后 运行小时=18 菲 回声 $RUNHR

谢谢

苏亚什耆那教
http://linuxhacks.in

【讨论】:

    猜你喜欢
    • 2016-09-18
    • 1970-01-01
    • 2023-03-19
    • 2014-10-09
    • 2012-11-19
    • 2013-06-16
    • 1970-01-01
    • 2015-06-16
    • 2019-03-08
    相关资源
    最近更新 更多