我试图比较两个时间戳变量以确定它们是否相同。变量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,即使这两个变量明显相同。这是我的变量分配方式的问题吗?或者这是一个简单的语法错误?
答案 0 :(得分:1)
为了避免由未定义的变量引起的这类错误,请在脚本中添加:
set -u
或者您可以在脚本开头的shebang行添加选项
#!/bin/bash -u
答案 1 :(得分:0)
if [ "$timestamp" != "$tempDate" ]; then
应该是
if [ "$timeStamp" != "$tempDate" ]; then
注意首都" S"。