Как запустить пару.sh в одну команду?

У меня есть несколько файлов в папке, и я хочу запустить их одной командой. Структура выглядит так:

keddad@keddad-HP:/media/$ ls
somfile.sh
otherfile.sh
onemorefile.sh

Поэтому я пытаюсь сделать это с помощью команды:

./*

Но он запускает только первый файл, игнорируя другие в папке. Как я могу запустить их все за один раз (или заставить их работать один за другим, чтобы второе запускалось после завершения первого)?

1 ответ

Решение

Когда вы попробовали./*, оболочка увидела одну команду:

./somfile.sh ./otherfile.sh ./onemorefile.sh

Или, другими словами, он увидел одну команду (./somefile.sh) с двумя аргументами (./otherfile.sh ./onemorefile.sh).

Чтобы запустить их один за другим (последовательно):

for each in ./* ; do "${each}" ; done

Чтобы запустить их все одновременно (одновременно / параллельно):

for each in ./* ; do "${each}" & done
Другие вопросы по тегам