Bu komutu komut satırı istemimden çalıştırabilirim:
cp -r folder/!(exclude-me) ./
Geçerli dizine adlandırılan alt dizin folder dışındaki tüm içeriğini özyinelemeli olarak kopyalamak için exclude-me. Bu tam olarak tasarlandığı gibi çalışır. Ancak, ben bu var, ben yazdığım bir bash komut dosyası çalışmak için buna ihtiyacım var:
if [ -d "folder" ]; then
cp -r folder/!(exclude-me) ./
rm -rf folder
fi
Ama senaryoyu çalıştırdığımda:
bash my-script.sh
Bunu anladım:
my-script.sh: line 30: syntax error near unexpected token `('
my-script.sh: line 30: ` cp -r folder/!(exclude-me) ./'
Ve neden komut isteminden çalıştığına dair bir kaybım var, ancak aynı satır bir bash komut dosyasında çalışmıyor.
env > file1senaryoyu çalıştırıp çalıştırmayı denedim./itve sonraenv > file2ve s'desource itbir fark bulacağım umuduylaenv, durum böyle değil. İki kabuk arasındaki tüm farkı programlı olarak nasıl listeleyebilirim (bu durumda etkileşimli ve etkileşimli olmayan)?