我编写了一个简短的脚本,它从远程主机上的 /etc/sudoers (## Expires 12122012) 中提取一行,然后将其与今天的日期进行比较,使用date +%d%m%Y
. 即使显示分配给它们的变量时这两个值看起来相同,但 if 语句永远不会将它们显示为匹配项。脚本和输出如下。额外的 echo 语句用于验证实际匹配的变量。
#!/bin/bash
TODAY=`date +%d%m%Y`
EXPIRES=`ssh -t hostname "grep Expires /etc/sudoers"`
EXPIREDATE=`echo $EXPIRES | awk -F " " '{ printf $3 }'`
if [ $TODAY = $EXPIREDATE ]
then
echo "This matches"
exit
else
echo "this doesn't match"
echo "$TODAY"
echo "$EXPIREDATE"
exit
fi
exit
输出:sh 测试
this doesn't match
12122012
12122012
我已经尝试了比较的多种变体,但没有运气。任何想法表示赞赏。谢谢!
更新
应用评论中的一些建议来检查空格后,我可以通过 echo 语句看到更多信息。不太清楚这是怎么发生的 0_o
#>echo test${TODAY}more
test12122012more
#>echo test${EXPIREDATE}more
more12122012