Cảm ơn bạn rất nhiều trước để giúp đỡ!Bash - for-loop cho mỗi thư mục trong một thư mục, ngoại trừ một số trong số chúng
Tôi có mã này trong bash:
for d in this_folder/*
do
plugin=$(basename $d)
echo $plugin'?'
read $plugin
done
Những hoạt động như một nét duyên dáng. Đối với mỗi thư mục bên trong 'this_folder', hãy echo nó như một câu hỏi và lưu trữ đầu vào vào một biến có cùng tên. Nhưng bây giờ tôi muốn loại trừ một số thư mục, ví dụ, nó sẽ yêu cầu mọi thư mục trong thư mục đó, CHỈ nếu chúng KHÔNG có bất kỳ thư mục nào sau đây: global, plugins, và css.
Bất kỳ ý tưởng nào về cách tôi có thể đạt được điều này?
Cảm ơn!
UPDATE:
Đây là cách mã cuối cùng trông giống như:
base="coordfinder|editor_and_options|global|gyro|movecamera|orientation|sa"
> vt_conf.sh
echo "# ========== Base" >> vt_conf.sh
for d in $orig_include/@($base)
do
plugin=$(basename $d)
echo "$plugin=y" >> vt_conf.sh
done
echo '' >> vt_conf.sh
echo "# ========== Optional" >> vt_conf.sh
for d in $orig_include/!($base)
do
plugin=$(basename $d)
echo "$plugin=n" >> vt_conf.sh
done
Đây là một tùy chọn rất tốt, nhưng cũng sẽ trả về tất cả các tệp nếu có cả thư mục và tệp trong 'this_folder'. Nếu bạn chỉ cần đặt dấu '/' ở cuối dòng 'for' (sau tiêu chí'! '), Điều này sẽ hoạt động tốt. Ngoài ra, tôi khuyên bạn nên (cho bạn và OP) kèm theo các tham chiếu đến '$ d' giữa các dấu ngoặc kép, do đó, điều này có thể bao gồm các tệp tập tin có dấu cách. –
@CharlesRobertoCanato: Lời khuyên hay, tôi đã thêm đề xuất của bạn – Thor