в этом скрипте интерпритатор жалуется на недопустимые лексемы в строках 94-104,убирание символов ;; не помогает,жалуется на синтаксис 5ff). Помогите с велосипедом,кстати моя первая программа с ключами =).И надеюсь не последняя,если смогу разобраться.
---------------------------------------думаю ошибка в этом блоке
while getopts ":3f 5f 5ff 10f 10ff h" opt ; #здесь перечисляются ключи для скрипта-которые ниже ссылаются на имена функций
do
case $opt in
3f) 3_folder() #интерпритатор жалуется на двойные кавычки [br]на 96 строке,когда их убираю,
;; #то начинает жаловаться на следующую строку (97)не устраивает 5f) эта часть.
5f) 5_folder() #
;;
5ff) 5_folder_file()
;;
10f) 10_folder()[
;;
10ff) 10_folder_file()
;;
h) print_help()
;;
# *) echo "Неправильный параметр";
# echo "Для вызова справки запустите $ME -h";
# exit 1
# ;;
esac
done
-------------------------------------весь код скрипта
#!/bin/bash
set -e #востанавливает скрипт в случае ошибки во время выполнения
#переменная для вывода приветствия и краткого описания скрипта
info_message="скрипт создает несколько папок(3,4,5) и на выбор добавляет в каждую два файла *.txt и *.md "
echo " $info_message "
ME="folder "
#функции
#функци справки по ключам
function print_help() {
echo "Работа с папками"
echo
echo "Использование: $ME скрипта..."
echo "Параметры:"
echo "-3f - создание 3 папок,без файлов."
echo "-3ff- создание 3 папок,c файлами."
echo "-5f - создание 5 папок,без файлов."
echo "-5ff- создание 5 папок,c файлами."
echo "-10f - создание 10 папок,без файлов. "
echo "-10f - создание 10 папок,без файлов. "
echo "-h cправка"
}
#функции создания папок
function 3_folder() {
mkdir {1..3}
echo "3 папки создано успешно"
}
function 5_folder() {
mkdir {1..5}
echo "5 папок создано успешно"
}
function 10_folder() {
mkdir {1..10}
echo "10 папок создано успешно"
}
function 3_folder_file() {
#cам цикл перебора списка
for (( i=1; i <= 3; i++ ))
do
#здесь идет команда которая должна выполняться
mkdir $i
cd $i
touch 1.txt 2.md
cd -
done
#конец цикла
echo "3 папки c файлами создано успешно "
}
function 5_folder_file() {
#cам цикл перебора списка
for (( i=1; i <= 5; i++ ))
do
#здесь идет команда которая должна выполняться
mkdir $i
cd $i
touch 1.txt 2.md
cd -
done
#конец цикла
echo "5 папок c файлами создано успешно "
}
function 10_folder_file() {
#cам цикл перебора списка
for (( i=1; i <= 10; i++ ))
do
#здесь идет команда которая должна выполняться
mkdir $i
cd $i
touch 1.txt 2.md
cd -
done
#конец цикла
echo "10 папок c файлами создано успешно "
}
# Если скрипт запущен без аргументов, открываем справку.
if [ $# = 0 ]; then
print_help
fi
#думаю ошибка в этом блок
while getopts ":3f 5f 5ff 10f 10ff h" opt ; #здесь перечисляются ключи для скрипта-которые ниже ссылаются на имена функций
do
case $opt in
3f) 3_folder() #интерпритатор жалуется на двойные кавычки на 96 строке,когда их убираю,
;; #то начинает жаловаться на следующую строку (97)не устраивает 5f) эта часть.
5f) 5_folder() #
;;
5ff) 5_folder_file()
;;
10f) 10_folder()
;;
10ff) 10_folder_file()
;;
h) print_help()
;;
# *) echo "Неправильный параметр";
# echo "Для вызова справки запустите $ME -h";
# exit 1
# ;;
esac
done