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
|
||||||