私はUbuntu 14.04を使用しています。 a.txt
ファイルに格納されているmd5ハッシュテキストのリストがあります。今私はテキストを入力します、私はそれをハッシュし、結果が私のファイルにあるかどうかをチェックします。私はそれを行うにはgrep
を使用していますが、スクリプトは静的な文字列のために働くだけです。私のようにs1
の値を設定し、ファイル内に既存のmd5sumが存在するか確認する - シェルスクリプト
81dc9bdb52d04dc20036dbd8313ed055 -
、あなたが見ることができます:
は私のスクリプトファイルはa.txt
ファイルで
file="a.txt"
s1="81dc9bdb52d04dc20036dbd8313ed055 -"
echo "s1: "$s1
s2=$(echo -n "1234" | md5sum)
echo "s2: "$s2
if grep -Fx "$s1" "$file"; then
echo 's1 FOUND'
else
echo 's1 NOT FOUND'
fi
if grep -Fx "$s2" "$file"; then
echo 's2 FOUND'
else
echo 's2 NOT FOUND'
fi
、私は唯一の1つのラインを持っているように見えます静的な文字列であり、s2
はハッシュの結果です。
私が得た出力:
s1: 81dc9bdb52d04dc20036dbd8313ed055 -
s2: 81dc9bdb52d04dc20036dbd8313ed055 -
81dc9bdb52d04dc20036dbd8313ed055 -
s1 FOUND
s2 NOT FOUND
を私は、画面上で見ることができるように - s1
とs2
が同じ値を持っています。 s1
がファイルに見つかりましたが、s2
では見つかりませんでした。私はここに何が間違っていて、修正するかを理解していません。
md5(FreeBSD上)を実装しても、入力が標準入力の場合は " - "は出力されません。あなたはそこにいると確信していますか?ホワイトスペースはどうですか? 'echo" s2:<$s2> "'を使うべきです。 – Jens
私はs2の値を確信しています。提案通りの出力:s2:<81dc9bdb52d04dc20036dbd8313ed055 - > –
OK。 '$ s1" = "$ s2"というテストを追加した場合の結果は何ですか?次にエコーは等しい。そうでなければエコー不一致です。 fi'? – Jens