Я знаю, как работают ожидание и &, но вместо того, чтобы останавливаться на команде ожидания, я хочу тем временем заняться какой-нибудь другой работой.
Например, это мой основной код, который спит в течение 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
Какой был бы эффективный способ выполнить какую-то работу во время ожидания фонового процесса bash ⇐ Linux
1714492639
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
``
Подробнее здесь: [url]https://stackoverflow.com/questions/78409749/what-would-be-efficient-way-to-to-some-job-while-waiting-for-a-bash-background-p[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия