Skip to content

Instantly share code, notes, and snippets.

@staroselskii
Last active August 29, 2015 13:56
Show Gist options
  • Save staroselskii/9310100 to your computer and use it in GitHub Desktop.
Save staroselskii/9310100 to your computer and use it in GitHub Desktop.
#!/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