Выделю отдельной темой: Нужен stopwatch на bash т.к лучше отдельно обсудить функционал передачи сигналов
Необходимо передавать в функцию bash сигналы вида:
./stopwatch.sh start 15, где 15 - минуты
./stopwatch.sh stop
./stopwatch.sh pause
./stopwatch.sh stat
Чтобы можно было написать stopwatch с функцией паузы и отдачи статики. Чатжпт такое выдал:
# Инициализация состояния
state="stopped"
# Функция, которая выполняется в цикле
run_function() {
while true; do
case "$state" in
running)
echo "Функция выполняется..."
sleep 1 # Имитация работы
;;
paused)
echo "Функция приостановлена. Ожидание команды..."
sleep 1
;;
stopped)
echo "Функция остановлена."
break
;;
esac
done
}
# Запуск функции в фоновом режиме
run_function &
# Получение PID фонового процесса
pid=$!
echo ${pid}
# Обработка аргументов
while true; do
case "$1" in
start)
state="running"
echo "Запуск функции..."
;;
stop)
state="stopped"
echo "Остановка функции..."
break
;;
pause)
state="paused"
echo "Приостановка функции..."
;;
resume)
state="running"
echo "Возобновление функции..."
;;
*)
echo "Использование: $0 {start|stop|pause|resume}"
exit 1
;;
esac
shift
done
# Ожидание завершения фонового процесса
wait $pid
Естественно, такое работать не будет т.к pid постоянно разный будет