Какой был бы эффективный способ выполнить какую-то работу во время ожидания фонового процесса 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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