Bir bash komut dosyası içinden, komut satırınaBash değişkenlerde joker karakterleri nasıl genişletir?
mv ./images/*.{pdf,eps,jpg,svg} ./images/junk/
yazarak aynı etkiye ulaşmak çalışıyorum. Ben:
MYDIR="./images"
OTHERDIR="./images/junk"
SUFFIXES='{pdf,eps,jpg,svg}'
mv "$MYDIR/"*.$SUFFIXES "$OTHERDIR/"
hangi çalıştırdığınızda, değil beklenmeyen bir hata veriyor:
mv: rename ./images/*.{pdf,eps,jpg,svg} to ./images/junk/*.{pdf,eps,jpg,svg}:
No such file or directory
tüm bu alıntı doğru yolu nedir mv
istenen genişleme yapmak aslında böylece? (Evet, ./images/
yılında kalıpla eşleşen dosyaların bol.)
+1, null trick, '@()' hakkında bilmiyordum, yeni bir şey öğrendim. Sadece manpage'de, “?”, “Desenler”, “*()” kalıpları, '+()' desenleri, '@()' desenleri ve '!()' Desenleri olduğunu merak eden herkese baktım. Tüm extglob etkinse kullanılabilir. – falstro
Parlak, teşekkürler! Kabuk betiklerinde alıntılama ve genişleme her zaman bana sorunlara neden olur, bu çok yardımcı olacaktır. –
@RossDuncan, http://mywiki.wooledge.org/BashParser'i, kabuğun yürütme modelinde yer alan aşamalarla ilgili iyi bir başvuru için başlayacak bir yer olarak ve hangi sırada gerçekleştiklerini öneririm. –