#!/bin/env bash

set -exu

if [ "$#" -ne 1 ]; then
  echo "Неверное число аргументов" >&2
  exit 1
fi

COUNT=0
N=$1

int_handler() {
  case $COUNT in
    0)
      echo "Доброе утро"
      ;;
    1)
      echo "Добрый день"
      ;;
    2)
      echo "Добрый вечер"
      ;;
  esac
  COUNT=$(((COUNT + 1) % 3))
  return 0
}

chdir() {
  mkdir -p "C"
  if [ ! -d "C" ]; then
    echo "Не удалось создать каталог ${PWD}/C" >&2
    return 1
  fi

  cd "C" || {
    echo "Не удалось перейти в каталог ${PWD}/C" >&2
    return 1
  }

  return 0
}

quit_handler() {
  for ((i=0; i<$N; i++)) do
    chdir

    if [ "$?" -ne 0 ]; then
      echo "Обработка сигнала QUIT не удалась"
      return 1
    fi
  done

  exit 1
}

trap int_handler INT
trap quit_handler QUIT

while true; do
  read -t 1 || true
done
