Для запуску всіх сценаріїв одночасно (паралельно) використовуйте:
script_1.sh &
script_2.sh &
script_3.sh &
script_4.sh &
script_5.sh &
Щоб запустити один за одним (послідовно), використовуйте:
script_1.sh &&
script_2.sh &&
script_3.sh &&
script_4.sh &&
script_5.sh
Вдосконалення для коментарів
Якщо у вас є 200 сценаріїв, які ви хочете запустити одночасно (які можуть зірвати машину BTW), використовуйте цей скрипт:
#!/bin/bash
for Script in my_folder/*.sh ; do
echo bash "$Script" &
done
Встановіть атрибути сценарію на виконуваний за допомогою команди:
chmod a+x /path/to/script.sh
Перший раз, коли ви запустите скрипт, він відображатиметься лише у назвах 200-ти сценаріїв, які він буде виконувати. Коли ви раді, вибираєте правильні імена, відредагуйте сценарій та змініть цей рядок:
echo bash "$Script" &
до:
bash "$Script" &
Є три способи викликати скрипт bash з іншого, як тут відповіли:
Зробіть інший виконуваний сценарій, додайте #!/bin/bashрядок у верхній частині та шлях, де файл знаходиться до $PATHзмінної середовища. Тоді ви можете називати це звичайною командою;
Або викликати за допомогою команди джерела (псевдонім.) Наступним чином: source /path/to/script;
Або використовуйте команду Баша , щоб виконати його: /bin/bash /path/to/script;
У випадку з ОП один або кілька з 200 сценаріїв не містили #!/bin/bashпершого рядка shebang у файлі. Як такий варіант 3. довелося використовувати.
200 сценаріїв, що працюють одночасно
Був опублікований коментар щодо того, чи "вони працюють одночасно". У типовій системі 8 процесорів 25 сценаріїв будуть спільно використовувати один процесор одночасно, але лише один сценарій буде виконуватися одночасно, поки не закінчиться відрізок часу (вимірюється в мілісекундах). Тоді наступна робота отримає свою справедливу частку мілісекунд, потім наступна робота і т.д., і т.д.
У розрізненому розумінні можна сказати, що 200 завдань виконуються "одночасно", але не "одночасно" через 8 процесорів, що дорівнює 25 робочим місцям на процесор:

Вище зображення та коментарі в планувальнику ядра Linux
