Grundlagen von Linux und der Kommandozeile
if [ -f "$f" ]; then
echo "found"
fiIn welchem Fall ist die Bedingung des obigen if in einem Shell-Skript wahr?
- AWenn eine gewöhnliche Datei mit dem Namen in der Variable f existiert
- BWenn eine Datei mit dem Namen in der Variable f existiert und ihre Größe größer als 0 ist
- CWenn eine Datei oder ein Verzeichnis mit dem Namen in der Variable f existiert
Antwort und Erläuterung anzeigen
Antwort: A. Wenn eine gewöhnliche Datei mit dem Namen in der Variable f existiert
[ ] ist eine andere Schreibweise des Befehls test: Er liefert den Exit-Status 0 (wahr), wenn die Bedingung erfüllt ist, und if verzweigt danach. -f prüft, ob „eine gewöhnliche Datei mit diesem Namen existiert“, und ist bei einem Verzeichnis falsch. Um nur die Existenz zu prüfen, verwendet man -e, für ein Verzeichnis -d und dafür, dass die Größe größer als 0 ist, -s. Nach [ und vor ] ist ein Leerzeichen nötig, und wenn man die Variable wie in "$f" in doppelte Anführungszeichen setzt, funktioniert die Prüfung auch bei Namen mit Leerzeichen.
Weiter: 9 weitere Fragen zu Grundlagen von Linux und der Kommandozeile