-
-
Save staroselskii/9310100 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/ksh | |
LOGFILE=script.log | |
function process_input { | |
local ret=$1 | |
if [[ "$ret" == "~"* ]]; then | |
echo 1>&2 "Введите 'y' если под ~ подразумевается $HOME" | |
read confirm | |
fi | |
if [ y = "$confirm" ]; then | |
echo $HOME${ret#?} | |
else | |
echo $ret | |
fi | |
} | |
function check_input { | |
if [ -z $1 ] | |
then | |
echo "Неверный ввод" | |
exit 1 | |
fi | |
} | |
function show_greeting { | |
cat<<EOF | |
1. Напечатать имя текущего каталога | |
2. Напечатать содержимое текущего каталога | |
3. Создать каталог | |
4. Предоставить всем право на запись в каталог | |
5. Убрать всем право на запись в каталог | |
6. Выйти из программы | |
EOF | |
} | |
while :; | |
do | |
show_greeting | |
echo "Укажите, что вы хотите сделать" | |
read input | |
check_input $input | |
case $input in | |
1) basename $PWD;; | |
2) ls ;; | |
3) echo "Введите имя нового каталога" | |
read dirname | |
check_input $dirname | |
dirname=$( process_input "$dirname" ) | |
mkdir -- "$dirname" 2>>$LOGFILE || echo "Возникла ошибка при выполнении mkdir" | |
;; | |
4) echo "Введите имя каталога, которому предоставляются права" | |
read dirname | |
check_input $dirname | |
dirname=$( process_input "$dirname" ) | |
if [[ -e "$dirname" ]]; then | |
chmod -- a+w "$dirname" 2>>$LOGFILE || echo "Возникла ошибка при выполнении chmod" | |
else | |
echo "Нет такого каталога!" | |
fi | |
;; | |
5) echo "Введите имя каталога, у которого убираются права" | |
read dirname | |
check_input $dirname | |
dirname=$( process_input "$dirname" ) | |
if [[ -e "$dirname" ]]; then | |
chmod -- a-w "$dirname" 2>>$LOGFILE || echo "Возникла ошибка при выполнении chmod" | |
else | |
echo "Нет такого каталога!" | |
fi | |
;; | |
6) exit 0;; | |
*) echo "Неверная опция!" | |
esac | |
done | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment