Câu trả lời:
Đừng phân tích cú phápls
. Đồng thời không sử dụng ALL_CAPS_VARS
for i in "$incoming_dir"/*"$business_date"*; do
Tương tác, ls
có một -d
tùy chọn ngăn chặn việc hạ xuống thành các thư mục con:
ls -d $INCOMINGDIR/*$BUSSINESSDATE*
"${i}"
. Bạn không bao giờ biết những gì có thể được trong i
.
my_file.doc[newline]another_persons_file.doc
và hy vọng rằng một số tập lệnh có thể cố gắng "rm" những gì nó thấy là 2 tên tệp ... liên kết của Glenn là phải đọc (trên mywiki.wooledge.org, mọi người nên đọc toàn bộ faq, và cả trang cạm bẫy)
ls -d .*
Không có lý do tại sao lệnh này nên được đệ quy. Nhưng nếu $INCOMINGDIR/*$BUSSINESSDATE*
khớp với một thư mục thì nội dung của thư mục này được hiển thị thay vì chính thư mục đó. Nhưng sẽ không có đệ quy vượt quá mức này.
Sử dụng lệnh này để tránh hiệu ứng đó:
ls -d "$INCOMINGDIR/"*"$BUSSINESSDATE"*
for ... in
các lệnh với ls
đầu ra là rủi ro.
Nói chung find
có vẻ là một giải pháp tốt hơn hoặc
for i in "$INCOMINGDIR/"*"$BUSSINESSDATE"*
printf %s\\n "$INCOMINGDIR/"*"$BUSINESSDATE"*