1

Я немного новичок в написании сценариев 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 ответ1

0

Кажется, это работает для меня. Добавление

#!/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 . Возможно, что-то осталось из примера.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .