Probleme mit der Funktion, die überprüft, ob ein Pfad vorhanden ist oder nicht

Probleme mit der Funktion, die überprüft, ob ein Pfad vorhanden ist oder nicht

Ich bin ein wenig neu im Bash-Scripting und habe versucht, dieses Programm dazu zu bringen, einen Verzeichnispfad vom Benutzer zu erfassen und dann zu prüfen, ob das Verzeichnis vorhanden ist. Es scheint, als ob die Variable SRCinnerhalb der dir_inputFunktion nicht an übergeben wird dir_input. Vielen Dank im Voraus.

dir_input() {
    echo -n "Enter targer directory: "
    read SRC
}
dir_input_check() {
    if [ ! -d "$SRC" ]; then
        echo ERROR: "Target directory not found - Please try again."
        dir_input
    fi
}

dir_input
dir_input_check

Antwort1

Bei mir scheint es zu funktionieren. Das Hinzufügen eines

#!/bin/bash -x

oben, um eine Ablaufverfolgung zu erhalten, sehe ich dies (wenn ich /tmpals Antwort eingebe):

> ./foo
+ dir_input
+ echo -n 'Enter targer directory: '
Enter targer directory: + read SRC
/tmp
+ dir_input_check
+ '[' '!' -d /tmp ']'

Daher SRCwird wie erwartet an übergeben dir_input_check. Möglicherweise wurde im Beispiel etwas ausgelassen.

verwandte Informationen