Ich möchte nicht unbedingt die Antwort, aber wenn mich jemand auf Literatur oder Beispiele hinweisen könnte. Ich würde es gerne herausfinden.
Wenn ich das Skript ausführe, erhalte ich eine Fehlermeldung:
Syntaxfehler in der Nähe eines unerwarteten Tokens
fi
Ich habe festgestellt, dass mein Problem in meiner if
Aussage liegt, indem ich meine if
Aussagen kommentierte und hinzufügte, in echo "$NAME"
der die Namen angezeigt werden /etc/
.
Wenn ich Änderungen vornehme, die #
aus if
und entferne fi
und zu hinzufüge #
, wc -c "$NAME"
wird der oben aufgeführte Syntaxfehler angezeigt. Ich habe ;
zwischenzeitlich hinzugefügt ]
. Ich bin auch then
ohne Auflösung in die nächste Zeile gewechselt.
#!/bin/bash
for NAME in /etc/*
do
if [ -r "$NAME" -af "$NAME" ] then
wc -c "$NAME"
fi
done
-af
soll das denn machen
-a
ist überflüssig, da die Bedingung bereits enthalten ist -f
. --- Auf jeden Fall müssen mehrere Bedingungen innerhalb [ ]
(dieser Befehl ist auch verfügbar als test
) mit logischen Operatoren wie -a
(und) oder -o
(oder) verknüpft werden. Wie in der Antwort unten vorgeschlagen, ist es jedoch besser, mehrere [ ]
( test
) Befehle und Verknüpfungen zu verwenden sie mit Shell-Operatoren wie &&
oder ||
.