Какой был бы эффективный способ выполнить какую-то работу во время ожидания фонового процесса bashLinux

Anonymous
Какой был бы эффективный способ выполнить какую-то работу во время ожидания фонового процесса bash

Сообщение Anonymous »

Я знаю, как работают ожидание и &, но вместо того, чтобы останавливаться на команде ожидания, я хочу тем временем заняться какой-нибудь другой работой.
Например, это мой основной код, который спит в течение 10 секунд (фоновый процесс). >
#!/bin/bash
sleep 10 &
pid1=$!

./loading_bar.sh $pid1
echo "Finished Loading Stuff"
exit 0

Пока основной скрипт спит в течение 10 секунд, я печатаю полосу загрузки и в цикле while проверяю завершение фонового процесса. Эти методы работают отлично, но я хотел бы спросить, есть ли какой-нибудь эффективный способ выполнить эту задачу, пока (( 1 )); это плохая практика программирования, которая может привести к бесконечному циклу, если что-то пойдет не так, например, дочерний процесс ДЕМОНИЗИРУЕТСЯ или никогда не завершается.
#!/bin/bash
proc_main=$1
tput civis
echo -e " ----------------------------------"
echo -ne "Loading | "; tput sc;
echo -e " |"
echo -e " ----------------------------------"
tput rc
tput cuu1
tput cuu1
while (( 1 )); do
for (( i=0; i /dev/null; then
echo " Process Completed ! "
break
fi
done
echo -e ""
tput cnorm
``


Подробнее здесь: https://stackoverflow.com/questions/784 ... ckground-p

Вернуться в «Linux»