
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 SRC
innerhalb der dir_input
Funktion 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 /tmp
als Antwort eingebe):
> ./foo
+ dir_input
+ echo -n 'Enter targer directory: '
Enter targer directory: + read SRC
/tmp
+ dir_input_check
+ '[' '!' -d /tmp ']'
Daher SRC
wird wie erwartet an übergeben dir_input_check
. Möglicherweise wurde im Beispiel etwas ausgelassen.