Aby uruchomić wszystkie skrypty jednocześnie (równolegle) użyj:
script_1.sh &
script_2.sh &
script_3.sh &
script_4.sh &
script_5.sh &
Aby uruchomić jeden po drugim (sekwencyjnie) użyj:
script_1.sh &&
script_2.sh &&
script_3.sh &&
script_4.sh &&
script_5.sh
Ulepszenie komentarzy
Jeśli masz 200 skryptów, które chcesz uruchomić w tym samym czasie (co może doprowadzić do awarii komputera BTW), użyj tego skryptu:
#!/bin/bash
for Script in my_folder/*.sh ; do
echo bash "$Script" &
done
Ustaw atrybuty skryptu na wykonywalne za pomocą polecenia:
chmod a+x /path/to/script.sh
Przy pierwszym uruchomieniu skryptu będzie to odzwierciedlać tylko nazwy 200 skryptów, które wykona. Kiedy jesteś zadowolony, że wybierasz odpowiednie nazwy, edytuj skrypt i zmień ten wiersz:
echo bash "$Script" &
do:
bash "$Script" &
Istnieją trzy sposoby na wywołanie skryptu bash z innego, tak jak tutaj:
Ustaw drugi skrypt jako wykonywalny, dodaj #!/bin/bashwiersz u góry i ścieżkę, w której znajduje się plik, do $PATHzmiennej środowiskowej. Następnie możesz nazwać to normalnym poleceniem;
Lub wywołaj to za pomocą polecenia źródłowego (alias to.) W następujący sposób source /path/to/script:;
Lub użyj polecenia bash, aby go wykonać: /bin/bash /path/to/script;
W przypadku OP jeden lub więcej z 200 skryptów nie zawierało #!/bin/bashpierwszego wiersza shebang w pliku. W związku z tym należało zastosować opcję 3..
200 skryptów działających jednocześnie
Pojawił się komentarz na temat tego, czy „działają w tym samym czasie”. W typowym systemie z 8 procesorami 25 skryptów będzie współużytkować jeden procesor w tym samym czasie, ale tylko jeden skrypt będzie wykonywany jednocześnie, aż skończy się przedział czasu (mierzony w milisekundach). Następnie następne zadanie otrzyma sprawiedliwy udział w milisekundach, a następnie następne zadanie itp. Itp.
W luźnym ujęciu możemy powiedzieć, że 200 zadań działa „jednocześnie”, ale nie „jednocześnie” na 8 procesorach, co odpowiada 25 zadaniom na procesor:

Powyżej obrazu i komentarzy poniżej z harmonogramu jądra systemu Linux
