63 lines
926 B
Bash
Executable File
63 lines
926 B
Bash
Executable File
#!/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
|