경로 존재 여부를 확인하는 기능 문제

경로 존재 여부를 확인하는 기능 문제

저는 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. 아마도 예제에서 빠진 것이 있을 것입니다.

관련 정보