Ich habe ein einfaches Skript zu prüfen, ob die Homepage eine bestimmte Zeichenfolge enthält. Es sieht aus wie:Bash string (Befehlsausgabe) Gleichheitstest
#!/bin/bash
res=`curl -s "http://www.google.com" | grep "foo bar foo bar" | wc -l`
if [[ $res == "0" ]]; then
echo "OK"
else
echo "Wrong"
fi
Wie Sie sehen, ich bin auf der Suche „OK“ zu bekommen, aber bekam ein „Falsch“.
Was ist los damit?
Wenn ich if [$ res == "0"], es funktioniert. Wenn ich nur res = „0“ statt res = verwenden curl...
, auch kann es die gewünschten Ergebnisse erzielen.
Warum gibt es diese Unterschiede?
Dank, es ist gute Lösung. Aber, wie meine Frage, ich weiß nur wollen, warum [[$ res == „0“]] wird in diesem Fall nicht funktioniert, so dass ich vermeiden, die gleichen Fehler in der Zukunft zu machen – kliu
was Sie sehen mit 'od -c <<< "$ res" '? Gibt es zusätzliche Leerzeichen? –
Ja, Sie haben Recht, es gibt Whitespaces in wc ausgegeben. Vielen Dank. – kliu