ubuntuusers.de

If-Anweisung in der Bash

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Kenny

Anmeldungsdatum:
21. Oktober 2004

Beiträge: 73

Hallo Leute

ich versuche gerade eine If-Anweisung in folgender Form zu schreiben

if Bedingung1
	then	Befehl1
	else
		if Bedingung2
			then Befehl2
			else Befehl3
		fi
fi


Nur wird leider die zweite If-Anweisung nicht ausgeführt wird.
Kann es sein, dass man in einer If-Anweisung keine zweite If-Anweisung aufrufen kann?

theRealAfroman

Avatar von theRealAfroman

Anmeldungsdatum:
31. März 2005

Beiträge: 702

Korrekt wäre

if Bedingung1 ; then
      Befehl1
   elif Bedingung2 ; then
       Befehl2
   else Befehl3
fi

joede

Avatar von joede

Anmeldungsdatum:
27. Oktober 2004

Beiträge: 207

Wohnort: Gründau (Nähe Frankfurt/Main)

Vielleicht liegt es ja auch nur daran, dass Du a) then in einer neuen Zeile hast und b) kein []; verwendest. Hier mal ein Schnippsel aus einem Script von mir, das so funktioniert.

for FN in $DESC_FILES ; do
    if [ -f ".$D_DIR/$FN" ]; then
        if [ -e "$D_BASE$D_DIR/$FN" ]; then
            echo "desc file $FN exists in $D_BASE$D_DIR/. Skipping..."
        else
            echo "copy desc file $FN to $D_BASE$D_DIR/"
            cp ".$D_DIR/$FN" "$D_BASE$D_DIR/"
            if [ $? -ne 0 ]; then
                echo "error: cp seems to failed."
            fi
        fi
    fi
    ...
done
Antworten |