Delgus
@Delgus

Как не останавливать выполнение скрипта после trap?

такой вот скрипт. хочу чтобы после ctrl + c можно было продолжить работу если пользователь не подтвердил выход
function after_ctrl_c() {
  echo
  # shellcheck disable=SC2162
  read -p "do you want to stop the program? [yes/no]: " answer
  case $answer in
  y | yes | Y | YES)
    echo Yes
    exit
    ;;
  *)
    echo No
    ;;
  esac
}

trap after_ctrl_c SIGINT

echo $$

while sleep 10
do
    echo Sleeping
done


я думал цикл while продолжит работу если не вызывать exit. но он заканчивает работу независимо от выбора
  • Вопрос задан
  • 51 просмотр
Решения вопроса 1
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
while sleep 10
do
    echo Sleeping
done

Вы прерываете команду sleep 10
после этого ваш цикл завершается

Сделайте так
while true; do
   sleep 10
   echo Sleeping
done
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
sotvm
@sotvm
Умный поймёт, а дураку и так всё равно.
||так не проще = один куй , но короче))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы