Shell-Skript mit wc -l, if-Anweisung nicht funktioniert
Ist das problem mit diesem code:
words=`wc -l /home/tmp/logged.log | awk '{print $1}'`;
if [ $words == 26 ]
then
echo $words
echo Good
else
echo Not so good
fi
es gibt immer die else-Anweisung. Sogar tho das Ergebnis ist 26.
Ich habe auch versucht
words=`wc -l < /home/jonathan/tmp/logged.log`;
- Meine Wette ist, dass
$words
hat ein Ende newline"26\n"
. - Um zu verhindern, dass
wc
drucken den Dateinamen, damit es von stdin Lesen:words=$(wc -l < /home/tmp/logged.log)
Du musst angemeldet sein, um einen Kommentar abzugeben.
versuchen
[ $words -eq 26 ]
statt[ $words == 26 ]
oder
[ 26 == 26 ]
zu überprüfen, dass die Anweisung funktioniertWeil
==
ist nicht gültig. Verwenden=
Durch die Art und Weise, die Sie verwenden können
cut
stattawk
.Versuchen Sie dies: