Yardımlarınız için şimdiden teşekkür ederiz!Bash - bir dizindeki her klasör için for döngüsü, bunlardan bazıları hariç
for d in this_folder/*
do
plugin=$(basename $d)
echo $plugin'?'
read $plugin
done
bir cazibe gibi çalışır:
ben bash bu kodu var. 'This_folder' içindeki her klasör için, bir soru olarak yankılanın ve girdiyi aynı ada sahip bir değişkene kaydedin.
Ancak şimdi bazı klasörleri hariç tutmak istiyorum, örneğin, bu dizindeki tüm klasörleri SADECE aşağıdaki klasörlerden OLMADIĞINI soracak: global, plugins ve css.
Herhangi bir fikri nasıl başarabilirim?
Teşekkürler!
GÜNCELLEME: Bir değişkende sonucunu saklamak ardından dizinleri listesi oluşturmak için find
ve awk
kullanıp,
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
Bu çok iyi bir seçenektir, ancak "this_folder" dosyasında hem dizinler hem de dosyalar varsa tüm dosyaları da döndürür. Eğer 'for' satırının sonuna bir '/' işareti koyduysanız ('!' Kriterlerinden sonra), bu güzel çalışacaktır. Ayrıca, teklifler arasında "$ d" ifadelerini çevreleyen (size ve OP'ye) öneririm, böylece bu dosya boşluklarını boşluklarla kaplayabilir. –
@CharlesRobertoCanato: İyi tavsiye, önerilerinizi ekledim – Thor