Warum gibt das Folgende 1, wenn ich es tue echo $?
?
#!/bin/bash
echo "two">file.txt
ARRAY=(one three two)
rc=0
for i in ${ARRAY[@]}; do
echo "grepping $i "
grep "$i" file.txt || rc=$?
done
exit $rc
Der letzte Befehl ist erfolgreich, da es grep
für ist two
.
Die Ausgabe ist:
grepping one
grepping three
grepping two
two
~$ echo $?
1
Ich habe mit 0 gerechnet. Beachten Sie, dass ich rc als 1 erhalten möchte, wenn ein Befehl in der Schleife fehlschlägt. Aber ich möchte verstehen, warum dies in diesem Fall geschieht