BASH字符串比较返回True

时间:2016-11-16 13:58:14

标签: bash

我试图比较两个时间戳变量以确定它们是否相同。变量tempDate用于保存最后一个有效日期的值,而变量timeStamp将保存循环中下一个时间戳的值。

我使用if语句来检测两个变量是否彼此不相等,但if语句每次都返回true。变量的分配如下:

timeStamp=${col2:5:2}${col2:8:2}${col2:0:4}
tempDate=${col2:5:2}${col2:8:2}${col2:0:4}

# Here is how the if statement is written...
if [ "$timestamp" != "$tempDate" ]; then
     #Additional Code
     echo "It is a new day!"
fi

其中col2等于指定为:

的任意时间戳
col2=2010-01-01 00:54

当我执行我的脚本时,if语句一致地返回true,即使这两个变量明显相同。这是我的变量分配方式的问题吗?或者这是一个简单的语法错误?

2 个答案:

答案 0 :(得分:1)

为了避免由未定义的变量引起的这类错误,请在脚本中添加:

set -u

或者您可以在脚本开头的shebang行添加选项

#!/bin/bash -u

答案 1 :(得分:0)

if [ "$timestamp" != "$tempDate" ]; then

应该是

if [ "$timeStamp" != "$tempDate" ]; then

注意首都" S"。

相关问题