Problemas com a função checando se um caminho existe ou não

1

Eu sou um pouco novo no bash scripting e eu estava tentando fazer este programa capturar um caminho de diretório do usuário e, em seguida, verificar se o diretório está presente. Parece que a variável SRC dentro da função dir_input não é passada para dir_input . Agradecemos antecipadamente.

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
    
por Luis 14.05.2015 / 01:56

1 resposta

0

Parece funcionar para mim. Adicionando um

#!/bin/bash -x

na parte superior para obter um rastreamento, vejo isso (se eu inserir /tmp na resposta):

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

Portanto, SRC é passado como esperado para dir_input_check . Talvez haja algo deixado de fora do exemplo.

    
por 14.05.2015 / 02:51