
Я немного новичок в написании скриптов bash и пытался заставить эту программу захватывать путь к каталогу от пользователя, а затем проверять, присутствует ли каталог. Кажется, что переменная SRC
внутри dir_input
функции не передается в dir_input
. Заранее спасибо.
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
решение1
Кажется, это работает для меня. Добавление
#!/bin/bash -x
вверху, чтобы получить трассировку, я вижу это (если я ввожу /tmp
в ответ):
> ./foo
+ dir_input
+ echo -n 'Enter targer directory: '
Enter targer directory: + read SRC
/tmp
+ dir_input_check
+ '[' '!' -d /tmp ']'
Так что SRC
передается, как и ожидалось, в dir_input_check
. Возможно, в примере что-то упущено.