unix
BIN
unix/25-1/1/Screenshot_20250915_123817.png
Normal file
|
After Width: | Height: | Size: 89 KiB |
BIN
unix/25-1/1/Screenshot_20250915_124152.png
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
unix/25-1/1/Screenshot_20250915_141630.png
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
unix/25-1/1/Screenshot_20250915_142218.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
unix/25-1/1/Screenshot_20250915_144642.png
Normal file
|
After Width: | Height: | Size: 101 KiB |
BIN
unix/25-1/2/Screenshot_20251016_103736.png
Normal file
|
After Width: | Height: | Size: 365 KiB |
BIN
unix/25-1/2/Screenshot_20251016_113218.png
Normal file
|
After Width: | Height: | Size: 541 KiB |
BIN
unix/25-1/3/Screenshot_20251030_113936.png
Normal file
|
After Width: | Height: | Size: 848 KiB |
BIN
unix/25-1/3/Screenshot_20251030_114932.png
Normal file
|
After Width: | Height: | Size: 438 KiB |
BIN
unix/25-1/3/Screenshot_20251105_150721.png
Normal file
|
After Width: | Height: | Size: 605 KiB |
BIN
unix/25-1/4/Screenshot_20251105_154701.png
Normal file
|
After Width: | Height: | Size: 664 KiB |
BIN
unix/25-1/4/Screenshot_20251113_105927.png
Normal file
|
After Width: | Height: | Size: 784 KiB |
BIN
unix/25-1/4/Screenshot_20251113_111128.png
Normal file
|
After Width: | Height: | Size: 145 KiB |
BIN
unix/25-1/4/Screenshot_20251113_111834.png
Normal file
|
After Width: | Height: | Size: 92 KiB |
BIN
unix/25-1/4/Screenshot_20251113_112030.png
Normal file
|
After Width: | Height: | Size: 251 KiB |
BIN
unix/25-1/4/Screenshot_20251113_113425.png
Normal file
|
After Width: | Height: | Size: 129 KiB |
BIN
unix/25-1/4/Screenshot_20251113_114446.png
Normal file
|
After Width: | Height: | Size: 172 KiB |
BIN
unix/25-1/4/Screenshot_20251113_114523.png
Normal file
|
After Width: | Height: | Size: 68 KiB |
14
unix/25-1/5/README.md
Normal file
@ -0,0 +1,14 @@
|
||||
Вариант 109
|
||||
Написать 2 shell-процедуры
|
||||
Первая процедура:
|
||||
при первом получении сигнала <ctrl+c> выдает на терминал сообщение «Доброе
|
||||
утро»;
|
||||
при втором получении сигнала <ctrl+c> выдает на терминал сообщение «Добрый
|
||||
день»;
|
||||
при третьем получении сигнала <ctrl+c> выдает на терминал сообщение «Добрый
|
||||
вечер»;
|
||||
при получении сигнала <ctrl+\> запускает n раз (n передается в процедуру в качестве
|
||||
параметра) в фоновом режиме процедуру 2 и на этом завершает свою работу.
|
||||
Вторая процедура:
|
||||
создает в текущем каталоге подкаталог С, делает его текущим и на этом завершает
|
||||
свою работу.
|
||||
62
unix/25-1/5/main.sh
Executable file
@ -0,0 +1,62 @@
|
||||
#!/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
|
||||