/ / ZSH'de komut dizisi yürütme için - zsh, globbing

ZSH'de komut dosyası yürütme işlemleri için - zsh, globbing

zsh

Aptal hissediyorum. Örneğin iki dosya döngüsüyle, örneğin bir ZSH komut dosyası var:

for f (*aaa*) {echo "$f"}
for f (*bbb*) {echo "$f"}

Eğer komut dosyası ilk çıkarsa find eşleşen dosyaları bulamıyor. Çalışmaya devam etmek için senaryoya ihtiyacım var.

Neyi kaçırıyorum?

Yanıtlar:

Cevap için 5 № 1

İçin eşleşme yoksa *aaa* varsayılan olarak bir hata bildirilir. Komut dosyanızın çıkmasına neden olan şey budur.

Bundan kaçınmak için NULL_GLOB seçeneğinin ayarlanması gerekir. Daha sonra, bir hatayı bildirmek yerine, hiçbir şey eşleşmezse, model bağımsız değişken listesinden kaldırılır.

NULL_GLOB'u ayarlamanın birkaç yolu vardır:

  • tüm senaryo için geçerek -G komut satırı seçeneği zsh. Bu, karma-bang satırında da yapılabilir:
$ zsh -G SCRIPT
#! / usr / bin / zsh -G f (* aaa *) {echo "$ f"} için f (* bbb *) {echo "$ f"} için
  • takip eden tüm satırlar için setopt ile ayarlayarak:
setopt NULL_GLOB f (* aaa *) {echo "$ f"} için f (* bbb *) {echo "$ f"} için
  • tek bir desen için glob niteleyicisini kullanarak N:
f (* aaa * (N)) {echo "$ f"} için f (* bbb *) {echo "$ f"} için

İlgili sorular
Yorumlar
Yorum ekle