find
сценарии, получите head
, затем выполните с xargs
.
find . -name '*.sh' | head -n 10 | xargs -n1 sh
Вы можете запускать сценарии параллельно с xargs
с простой опцией -P0
.Вы можете написать xargs
с некоторыми xargs sh -c 'bash "$@" -H || exit 125' --
, чтобы xargs
завершить работу с ненулевым статусом или сразу после того, как какой-либо из сценариев не запустится или что-то в этом роде.
Если вы чувствуете, что не знакомы с xargs
,просто выполните простой цикл while read
:
find . -name '*.sh' | head -n 10 |
while IFS= read -r script; do
bash "$script" -H || break
done
И параллельно вы должны выйти из подоболочки канала:
while IFS= read -r script; do
bash "$script" -H || break &
done < <(
find . -name '*.sh' | head -n 10
)
wait # for all the childs
или подождать потомков в самом подоболочке:
find . -name '*.sh' | head -n 10 |
{
while IFS= read -r script; do
bash "$script" -H || break &
done
wait
}