Как запустить пару.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