Vấn đề với kiểm tra chức năng nếu một đường dẫn tồn tại hay không


1

Tôi là một người mới với bash scripting và tôi đã cố gắng làm cho chương trình này nắm bắt một đường dẫn thư mục từ người dùng và sau đó kiểm tra xem thư mục có mặt không. Có vẻ như nếu biến SRCbên trong dir_inputhàm không được truyền vào dir_input. Cảm ơn trước.

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

Làm thế nào exaxtly bạn chạy kịch bản?
Volker Siegel

Re "Có vẻ như biến SRC bên trong hàm dir_input không chuyển đến dir_input." Calue trong SRC không đến từ matrixblr trong dir_input. Đó là đầu vào trực tiếp.
Volker Siegel

Nó dường như hoạt động cho ma, theo như tôi thấy - bạn có thể hiển thị một bài kiểm tra cho thấy có gì đó sai không?
Volker Siegel

Câu trả lời:


0

Nó dường như làm việc cho tôi. Thêm một

#!/bin/bash -x

ở trên cùng để có một dấu vết, tôi thấy điều này (nếu tôi nhập /tmptrả lời):

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

Vì vậy, SRCđược thông qua như mong đợi dir_input_check. Có lẽ có một cái gì đó rời khỏi ví dụ.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.