Tôi đang cố gắng để có được nội dung của một thư mục bằng cách sử dụng shell script.
Kịch bản của tôi là:
for entry in `ls $search_dir`; do
echo $entry
done
nơi $search_dir
là một con đường tương đối. Tuy nhiên, $search_dir
chứa nhiều tệp có khoảng trắng trong tên của chúng. Trong trường hợp đó, tập lệnh này không chạy như mong đợi.
Tôi biết tôi có thể sử dụng for entry in *
, nhưng nó chỉ hoạt động cho thư mục hiện tại của tôi.
Tôi biết tôi có thể thay đổi thư mục đó, sử dụng for entry in *
rồi thay đổi lại, nhưng tình huống cụ thể của tôi ngăn cản tôi làm điều đó.
Tôi có hai đường dẫn tương đối $search_dir
và $work_dir
, và tôi phải làm việc trên cả hai cùng một lúc, đọc chúng tạo / xóa các tập tin trong họ, vv
Vậy tôi phải làm gì bây giờ?
PS: Tôi sử dụng bash.
for entry in "$search_dir/*"
không làm việc? Tại sao chúng ta cần đặt/*
bên ngoài dấu ngoặc kép?