PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : if - elif - elif - else // 2. Anweisung greif immer?!?



tetex
20-06-2011, 09:24
Hi,

habe folgende Funktion bei der die zweite Anweisung immer greift wenn die erste nicht zutrifft. Völlig unverständlich für mich ... finde auch keinen Fehler. Sicher kann mir helfen behilflich sein :-)


check_ftp_details () {
CURL_ERROR_STATUS=${1}
DATE=`date "+%Y-%m-%d %H:%M:%S"`
if [ "${CURL_ERROR_STATUS}" = "7" ]; then
echo -e "${DATE};check_ftp_details;${CURL_ERROR_STATUS};Kei ne Verbindung zum Host;${2};" >> debug.log
CURL_ERROR_RESPONSE="1"
elif [ "${CURL_ERROR_STATUS}" = "67" ]; then
echo -e "${DATE};check_ftp_details;${CURL_ERROR_STATUS};Log in wurde verweigert;${2};" >> debug.log
CURL_ERROR_RESPONSE="1"
elif [ "${CURL_ERROR_STATUS}" != "0" ]; then
echo -e "${DATE};check_ftp_details;${CURL_ERROR_STATUS};Unb ekannter Fehler;${2};" >> debug.log
CURL_ERROR_RESPONSE="2"
else
CURL_ERROR_RESPONSE="0"
fi
export CURL_ERROR_RESPONSE
}

Aufruf der Funktion:

check_ftp_details "6" "ftp://user:pass@host:port"
- Hier greift die Bedingung "elif [ "${CURL_ERROR_STATUS}" = "67" ]; then"


check_ftp_details "234" "ftp://user:pass@host:port"
- Auch hier greift die Bedingung "elif [ "${CURL_ERROR_STATUS}" = "67" ]; then"


check_ftp_details "0" "ftp://user:pass@host:port"
- Hier jedoch greift "else CURL_ERROR_RESPONSE="0""

Alles was nicht 7 oder 0 ist wird von der Bedingung "elif [ "${CURL_ERROR_STATUS}" = "67" ]; then" bearbeitet ... ich versteh es einfach nicht ^^

Freue mich auf Feedback :-)

Gruß

tetex
21-06-2011, 15:47
Kann geschlossen werden. Muss mich diesbezüglich wohl an ein anderes Forum wenden ;-)

John W
25-06-2011, 12:08
Also verglichen wird mit "==", nicht mit "=", aber auch nur bei Strings, Zahlen werden mit "-eq" auch Gleihheit bzw. mit "-ne" auf Ungleichheit geprüft. Das Beispiel funzt bei mir aber aus unverständlichen Gründen auch so korrekt wie gewünscht…