Tüm komut dosyalarını aynı anda çalıştırmak için (paralel olarak) kullanın:
script_1.sh &
script_2.sh &
script_3.sh &
script_4.sh &
script_5.sh &
Birini arka arkaya çalıştırmak için (sırayla) kullanın:
script_1.sh &&
script_2.sh &&
script_3.sh &&
script_4.sh &&
script_5.sh
Yorumlar için geliştirme
Aynı anda çalıştırmak istediğiniz 200 komut dosyanız varsa (makinenin BTW'sini bozabilir) bu komut dosyasını kullanın:
#!/bin/bash
for Script in my_folder/*.sh ; do
echo bash "$Script" &
done
Komut dosyası özniteliklerini şu komutla yürütülebilir dosyaya ayarlayın:
chmod a+x /path/to/script.sh
Komut dosyasını ilk kez çalıştırdığınızda, yürüteceği 200 komut dosyasının adlarını yankılandıracaktır. Mutlu olduğunuzda doğru adlar seçildiğinde komut dosyasını düzenleyin ve şu satırı değiştirin:
echo bash "$Script" &
için:
bash "$Script" &
Burada yanıtlandığı gibi bash betiğini diğerinden çağırabilmenin üç yolu vardır:
Diğer komut dosyasını yürütülebilir yapın, #!/bin/bashen üstteki satırı ve dosyanın $PATHortam değişkeninin bulunduğu yolu ekleyin . Sonra normal bir komut olarak adlandırabilirsiniz;
Veya şöyle kaynak komutuyla (diğer ad.) Çağırın source /path/to/script:;
Veya yürütmek için bash komutunu kullanın /bin/bash /path/to/script:;
OP'nin durumunda, 200 komut dosyasından biri veya daha fazlası #!/bin/bashdosyadaki ilk satırını içermiyordu . Bu nedenle 3. seçenek kullanılmalıdır.
Aynı anda çalışan 200 Script
"Aynı anda çalışıyorlar mı" hakkında bir yorum yapılmıştır. Tipik bir 8 CPU sisteminde 25 komut dosyası aynı anda bir CPU paylaşacaktır, ancak zaman dilimi (milisaniye cinsinden ölçülür) bitene kadar aynı anda yalnızca bir komut dosyası yürütülür. Sonra bir sonraki iş milisaniye, daha sonra bir sonraki iş vb.
Gevşek terimlerle, CPU başına 25 işe eşit olan 8 CPU'da 200 işin "eşzamanlı olarak" çalıştığını, ancak "eşzamanlı olarak" çalışmadığını söyleyebiliriz:

Linux çekirdek zamanlayıcısından aşağıdaki resim ve yorumlar
