Переделал код, а то каша была сам путаться начал.
. /opt/wine-script/variables
. /opt/wine-script/base
reserve(){
if ! [ -f "$wUSER" ];
then
echo "WINEPREFIX не обнаружен или создан с ошибкой."
echo "Создаю чистый WINEPREFIX."
echo "$PUS"
echo "Создаю резервную копию файла user.reg."
winecfg
mkdir -p "$RES"
cp "$wUSER" "$RES"
echo "Резервный файл успешно создан и помещен в директорию "$HOME"/.wine/res"
echo "$PUS"
elif ! [ -f "$rUSER" ];
then
echo "$PUS"
mkdir -p "$RES"
cp "$wUSER" "$RES"
echo "Резервный файл успешно создан."
echo "$PUS"
fi
menu_user
}
msxml3(){
msxml3=$HOME/.cache/winetricks/msxml3/msxml3.msi
if ! [ -f "$msxml3" ];
then
mkdir -p $HOME/.cache/winetricks/msxml3
wget -P $HOME/.cache/winetricks/msxml3/ https://www.dropbox.com/s/4gaoezmuld05tk0/msxml3.msi
fi
}
mdac27(){
mdac=$HOME/.cache/winetricks/mdac27/mdac_typ.exe
if ! [ -f "$mdac" ];
then
mkdir -p $HOME/.cache/winetricks/mdac27
wget -P $HOME/.cache/winetricks/mdac27/ https://www.dropbox.com/s/68eardamsl1ju3l/mdac_typ.exe
fi
}
memory(){
echo "Для настройки видеокарты нужно указать количество ее оперативной памяти."
echo "Введите число и нажмите «ENTER»."
echo "Для возврата в меню нажмите «n»."
echo "Если ввод окажется пуст выставится значение 128."
read -p "Строка ввода:" RAM
case "$RAM" in
128|256|512|512|1024|2048|3072|4096|8192)
echo "Вы ввели значение:«$RAM»,оно будет записано в реестр wine как оперативная память вашей видеокарты."
cat > user.reg << END
[HKEY_CURRENT_USER\Software\Wine\Direct3D]
"VideoMemorySize"="$RAM"
[HKEY_CURRENT_USER\Software\Wine\DllOverrides]
"*winegstreamer"=""
END
chmod +x user.reg
wine regedit user.reg
rm user.reg
echo "Настройка реестра закончена."
xrandr -s 0
echo "Установка закончена, проверьте установленные библиотеки и нажмите «Ок»."
winecfg
;;
n) echo "Возврат в меню."
menu_user
;;
*) echo "Вы неправильно указали количество видео памяти, значение будет установлено по умолчанию «128»."
cat > user.reg << END
[HKEY_CURRENT_USER\Software\Wine\Direct3D]
"VideoMemorySize"="128"
[HKEY_CURRENT_USER\Software\Wine\DllOverrides]
"*winegstreamer"=""
END
chmod +x user.reg
wine regedit user.reg
rm user.reg
echo "Настройка реестра закончена."
xrandr -s 0
echo "Установка закончена, проверьте установленные библиотеки и нажмите «Ок»."
echo "Возврат в меню настроек."
winecfg
;;
esac
}
menu_user(){
clear
echo "Меню настройки «wine»"
echo "Вы можете выбрать действие для продолжения установки:"
echo " 1. Настройка под игру ( список игр ) [1]"
echo " 2. Настройка программ ( софт ) [2]"
echo " 3. Общая настройка wine ( полная ) [3]"
echo " 4. Восстановить настройки ( user.reg ) [4]"
echo " 5. Удалить WINEPREFIX=.wine ( удалить .wine ) [5]"
echo " 6. Выход из программы ( закрыть ) [6]"
echo "Введите цифру для продолжения:"
read -p "Строка ввода:" MENU
case "$MENU" in
1) echo "Вы выбрали «1»"
echo "Быстрая настройка игр."
echo "Выберете скрипт и запустите его в терминале:"
echo "$PUS"
$ILIST_GAME
echo "$PUS"
echo "Для настройки игры скопируйте ее имя в строку ввода и нажмите «ENTER»."
echo "Для возврата в меню оставьте строку пустой."
read -p "Строка ввода:" GSTART
echo "Настраиваю игру:"
echo "$PUS"
$GAME$GSTART
echo "$RETURN"
menu_user
;;
2) echo "Вы выбрали «2»"
echo "Показываю список программ:"
echo "Выберете скрипт и запустите его в терминале:"
echo "$PUS"
$ILIST_PROG
echo "$PUS"
echo "Для настройки программы скопируйте ее имя в строку ввода и нажмите «ENTER»."
echo "Для возврата в меню оставьте строку пустой."
read -p "Строка ввода:" PSTART
echo "Настраиваю программу:"
echo "$PUS"
$PROG$PSTART
echo "$RETURN"
menu_user
;;
3) echo "Вы выбрали «3», устанавливаю библиотеки для wine..."
echo "$PUS"
msxml3
mdac27
wine_settings
echo "$PUS"
memory
echo "$PUS"
menu_user
;;
4) echo "Вы выбрали «4», восстановление исходных настроек из резерва."
echo "Настройки восстановлены."
echo "В открывшемся окне перейдите на вкладку «Библиотеки» и проверьте настройки."
cp "$rUSER" "$HOME"/.wine/
echo "$PUS"
winecfg
menu_user
;;
5) echo "Вы выбрали «5», идёт удаление каталога «.wine»"
echo "Это действие приведет к уничтожению всех данных и настроек «wine»."
echo "Для создания нового WINEPREFIX запустите команду «winecfg» или перезапустите «dll-install» он сам создаст чистый WINEPREFIX."
echo "Если вы хотите продолжить удаление нажмите «y», для отмены «n». Продолжить? (Y/n)"
read -p "Строка ввода:" PREFIX
case "$PREFIX" in
y|Y) echo "Вы выбрали «y», удаляю WINEPREFIX."
echo "После удаления программа «dll-install» сама создаст чистый WINEPREFIX."
if [ -d $WIN ];
then
rm -rfv "$HOME"/.wine
else
echo "Директории нет, удалять нечего."
fi
echo "$PUS"
echo "WINEPREFIX удален."
echo "Хотите создать новый чистый WINEPREFIX?"
echo "Если выберите «n» программа закроется."
echo "Пустой ввод вернет в меню выбора действий без создания WINEPREFIX."
echo "Выберите действие: (y/N)"
read -p "Строка ввода:" OPS
case "$OPS" in
y|Y) echo "Вы выбрали «y», создаю чистый WINEPREFIX."
echo "$PUS"
reserve
;;
n|N) echo "Вы выбрали «n», закрыть программу."
exit
;;
*) echo "Ничего не ввели, переход в меню выбора действий."
menu_user
;;
esac
;;
n|N) echo "Вы выбрали «n», отмена действия и возврат в меню."
menu_user
;;
*) echo "Ничего не ввели, возврат в меню."
menu_user
;;
esac
;;
6) echo "Выход из программы"
exit
;;
*) echo "Ничего не ввели. Возврат в меню выбора действий."
menu_user
;;
esac
}
reserve
menu_user
Кто может подсказать как сделать test множества переменных. Например надо проверить 7мь переменных с 0 отзывом.
Это можно сделать не плодя кучу секций теста на каждую переменную отдельно?