find
не сделает этого за вас.
создайте сценарий, найдите свои сценарии for _loop.sh и выполните их, например:
#!/bin/bash
for theScript in $(find dir_* -name for_loop.sh); do
"$theScript" &
done
если скрипт должен быть запущен внутри подкаталога -, попробуйте cd
в него раньше, возможно, как cd $(dirname "$theScript") &&. $(basename "$theScript")
.
мои примеры не проверены детально и не терпимы к ошибкам -...
Редактировать 1:
Как Сато Кацура правильно прокомментировал, приведенный выше сценарий прерывается, если в имени каталога есть пробелы.
Поэтому я переключился на цикл наread
:
#!/bin/bash
find dir_* -name for_loop.sh | while IFS= read -r theScript; do
"$theScript" &
done
Расписание ниже указанного скрипта в crontab
*/5****/путь _сценария _
код
#!/bin/bash
process=`ps -eaf | grep -i scriptname | grep -iv 'grep' | wc -l`
if [[ $process > 0 ]]
then
echo "script is running"
else
echo "script is not running"
echo "Need to start the script"
sh scriptname
fi
Затем вы можете, если вам нужно, чтобы он работал постоянно, чтобы избежать запуска из crontab, запустить его из inittab с опцией возрождения.