BASH字符串比较返回True
问题描述:
我想比较两个时间戳变量以确定它们是否相同。变量tempDate用于保存上次有效日期的值,而变量timeStamp将保存循环中下一个时间戳的值。BASH字符串比较返回True
我正在使用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
当我执行我的脚本如果语句返回true一致,即使在两个变量明显相同。这是如何分配我的变量的问题?或者它是一个简单的语法错误?
答
if [ "$timestamp" != "$tempDate" ]; then
应该
if [ "$timeStamp" != "$tempDate" ]; then
注意是大写的 “S”。
答
为了避免这些种类造成的不确定变量的bug在脚本中添加此:
set -u
,或者您可以在脚本
#!/bin/bash -u
+0
我会upvote如果我可以,我将它添加到我的所有脚本 – WxPilot
添加开始添加的家当行选项那堆栈溢出尴尬的问题列表... – WxPilot