リモートホストの /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