Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.
Модератор: Bizdelnick
Novichok2016
Сообщения: 211
ОС: Xubuntu Core 16.04.3 x64
Сообщение
Novichok2016 » 05.05.2017 18:45
Bizdelnick писал(а): ↑ 05.05.2017 17:42
А Вы его устанавливаете только в своём скрипте
Да, так и есть.
Bizdelnick писал(а): ↑ 05.05.2017 17:42
В дебианообразных дистрибутивах в большинстве случаев имеется whiptail, но он текстовый, а не графический.
Изначально говорилось об этом:
Понятия не имею, текстовый ли, или графический, но хотелось бы сделать такой вариант, вне зависимости от присутствия в ос того или иного пакета...
Переезжаю: Xubuntu ---> Debian = Переезд не удался
Janik
Сообщения: 849
Статус: Оператор вычислительных машин
ОС: Debian
Сообщение
Janik » 05.05.2017 19:20
Это текстовый. Графический - это zenity и ему подобные. Графические в основном используют иксы.
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Novichok2016
Сообщения: 211
ОС: Xubuntu Core 16.04.3 x64
Сообщение
Novichok2016 » 05.05.2017 19:21
Janik писал(а): ↑ 05.05.2017 19:20
Это текстовый.
А как его сделать для моего скрипта?
Переезжаю: Xubuntu ---> Debian = Переезд не удался
Janik
Сообщения: 849
Статус: Оператор вычислительных машин
ОС: Debian
Сообщение
Janik » 05.05.2017 20:03
man whiptail
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Bizdelnick
Модератор
Сообщения: 20791
Статус: nulla salus bello
ОС: Debian GNU/Linux
Сообщение
Bizdelnick » 06.05.2017 00:15
Как-то так:
Код: Выделить всё
#!/bin/sh -e
TEMP=$( mktemp )
trap "rm -f '$TEMP'" EXIT
whiptail --notags --checklist 'Select actions' 25 60 15 \
lo 'install libreoffice' off \
nvidia 'install nvidia' off \
2> "$TEMP"
for action in $( cat "$TEMP" ); do
case "$action" in
'"lo"')
apt-get install -yq libreoffice libreoffice-l10n-ru libreoffice-help-ru
;;
'"nvidia"')
add-apt-repository -y ppa:graphics-drivers/ppa
apt-get update -yq
apt-get install -yq nvidia-graphics-drivers-381
;;
esac
done
Пишите правильно:
в консоли
вк у́пе (с чем-либо)
в о бщем
воо бще в течение (часа)
новичо к
ню анс
по у молчанию приемле мо
проблем а
пробо вать
траф ик
Novichok2016
Сообщения: 211
ОС: Xubuntu Core 16.04.3 x64
Сообщение
Novichok2016 » 06.05.2017 12:29
Пробный вариант:
Код: Выделить всё
#!/bin/sh -e
TEMP=$( mktemp )
trap "rm -f '$TEMP'" EXIT
whiptail --notags --checklist 'Выбор пакетов' 25 60 15 \
1 'update' off \
2 'upgrade' off \
3 'dist-upgrade' off \
4 'Драйвера Nvidia' off \
5 'Браузер Opera' off \
6 'Браузер Chrome' off \
7 'Виртуальный глобус Google Earth' off \
8 'Xneur' off \
9 'Видеоредактор Openshot' off \
10 'Видеоредактор Avidemux' off \
11 'Winusb' off \
12 'Слепок ОС Systemback' off \
13 'Peek. Запись GIF с экрана' off \
14 'VidCutter. Обрезка видео' off \
15 'Grub Customizer. Настройка меню граб' off \
16 'Disk Indicator' off \
17 'Управление ядрами UKUU' off \
18 'Ekstertera. Клиент Яндекс-Диск' off \
19 'LibreOffice' off \
20 'LibreOffice. Справка' off \
21 'LibreOffice. Локализация' off \
22 'Текстовый редактор Mousepad' off \
23 'file-roller' off \
24 'xfce4-netload-plugin' off \
25 'xfce4-places-plugin' off \
26 'xfpanel-switch' off \
27 'orage' off \
28 'update-manager' off \
29 'gtk-theme-config' off \
30 'update-notifier' off \
31 'lightdm-gtk-greeter-settings' off \
2> "$TEMP"
for action in $( cat "$TEMP" ); do
case "$action" in
'"1"')
apt-get update -y
;;
'"2"')
apt-get upgrade -y
;;
'"3"')
apt-get dist-upgrade -y
;;
'"4"')
add-apt-repository ppa:graphics-drivers/ppa
apt-get update -y
;;
'"5"')
add-apt-repository 'deb https://deb.opera.com/opera-stable/ stable non-free'
wget -qO- https://deb.opera.com/archive.key |
apt-key add -
apt-get update -y
apt-get install opera-stable -y
;;
'"6"')
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub |
apt-key add -
sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
apt-get update -y
apt-get install google-chrome-stable -y
;;
'"7"')
mkdir /tmp/google-earth && cd /tmp/google-earth
wget https://dl.google.com/dl/earth/client/current/google-earth-stable_current_amd64.deb
apt-get install ./google-earth-stable_current_amd64.deb -y
;;
'"8"')
add-apt-repository ppa:andrew-crew-kuznetsov/xneur-stable -y
apt-get update -y
apt-get install gxneur -y
;;
'"9"')
add-apt-repository ppa:openshot.developers/ppa -y
apt-get update -y
apt-get install openshot-qt -y
;;
'"10"')
apt-add-repository ppa:mc3man/avidemux1 -y
apt-get update -y
apt-get install avidemux -y
;;
'"11"')
add-apt-repository ppa:nilarimogard/webupd8 -y
apt-get update -y
apt-get install winusb -y
;;
'"12"')
add-apt-repository ppa:nemh/systemback -y
apt-get update -y
apt-get install systemback -y
;;
'"13"')
add-apt-repository ppa:peek-developers/stable -y
apt-get update -y
apt-get install peek -y
;;
'"14"')
add-apt-repository ppa:ozmartian/apps -y
apt-get update -y
apt-get install vidcutter -y
;;
'"15"')
add-apt-repository ppa:danielrichter2007/grub-customizer -y
apt-get update -y
apt-get install grub-customizer -y
;;
'"16"')
apt-add-repository ppa:teejee2008/ppa -y
apt-get update -y
apt-get install indicator-diskman -y
;;
'"17"')
apt-add-repository -y ppa:teejee2008/ppa -y
apt-get update -y
apt-get install ukuu -y
;;
'"18"')
add-apt-repository ppa:abbat/ekstertera -y
apt-get update -y
apt-get install ekstertera -y
;;
'"19"')
apt-get install libreoffice -y
;;
'"20"')
apt-get install libreoffice-help-ru -y
;;
'"21"')
apt-get install libreoffice-l10n-ru -y
;;
'"22"')
apt-get install mousepad -y
;;
'"23"')
apt-get install file-roller -y
;;
'"24"')
apt-get install xfce4-netload-plugin -y
;;
'"25"')
apt-get install xfce4-places-plugin -y
;;
'"26"')
apt-get install xfpanel-switch -y
;;
'"27"')
apt-get install orage -y
;;
'"28"')
apt-get install update-manager -y
;;
'"29"')
apt-get install gtk-theme-config -y
;;
'"30"')
apt-get install update-notifier -y
;;
'"31"')
apt-get install lightdm-gtk-greeter-settings -y
;;
esac
done
С внешностью вреде все ок:
но вот при выборе действия не хочет выполнять это действие...
Переезжаю: Xubuntu ---> Debian = Переезд не удался
Janik
Сообщения: 849
Статус: Оператор вычислительных машин
ОС: Debian
Сообщение
Janik » 06.05.2017 14:50
А что в выводе?
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Bizdelnick
Модератор
Сообщения: 20791
Статус: nulla salus bello
ОС: Debian GNU/Linux
Сообщение
Bizdelnick » 06.05.2017 19:25
Novichok2016 писал(а): ↑ 06.05.2017 12:29
С внешностью вреде все ок
Не то чтобы совсем ок — видно, что опция --notags не работает. Похоже, её добавили (точнее, перенесли из dialog) совсем недавно.
Novichok2016 писал(а): ↑ 06.05.2017 12:29
при выборе действия не хочет выполнять это действие...
Вы вставили лишний неэкранированный перевод строки перед перенаправлением вывода whiptail.
Пишите правильно:
в консоли
вк у́пе (с чем-либо)
в о бщем
воо бще в течение (часа)
новичо к
ню анс
по у молчанию приемле мо
проблем а
пробо вать
траф ик
Novichok2016
Сообщения: 211
ОС: Xubuntu Core 16.04.3 x64
Сообщение
Novichok2016 » 07.05.2017 20:04
Janik писал(а): ↑ 06.05.2017 14:50
А что в выводе?
Для проверки выбираю первые три действия и вот вывод:
Код: Выделить всё
root@Home:~/Рабочий стол# '/home/akb/Рабочий стол/123.sh'
"1" "2" "3"root@Home:~/Рабочий стол#
Bizdelnick писал(а): ↑ 06.05.2017 19:25
Не то чтобы совсем ок — видно, что опция --notags не работает. Похоже, её добавили (точнее, перенесли из dialog) совсем недавно.
На что это может повлиять?
Bizdelnick писал(а): ↑ 06.05.2017 19:25
Вы вставили лишний неэкранированный перевод строки перед перенаправлением вывода whiptail.
Сто раз пересмотрел скрипт, но ошибки так и не удалось найти...
Переезжаю: Xubuntu ---> Debian = Переезд не удался
Janik
Сообщения: 849
Статус: Оператор вычислительных машин
ОС: Debian
Сообщение
Janik » 07.05.2017 20:20
Всё верно, whiptail выводит всё на стандартный вывод, коим обычно является терминал, а Вам нужно было его вывод перенаправить в файл. Поэтому у Вас ничего не работает. А вообще, прежде чем писать скрипты, почитайте о их синтаксисе, так как он содержит некоторые неочевидные вещи (сам иногда парился).
Novichok2016 писал(а): ↑ 07.05.2017 20:04
но ошибки так и не удалось найти...
Ошибка заключается в том, что строка перед
не завершается обратной кавычкой '\'.
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Novichok2016
Сообщения: 211
ОС: Xubuntu Core 16.04.3 x64
Сообщение
Novichok2016 » 07.05.2017 21:02
Janik писал(а): ↑ 07.05.2017 20:20
Ошибка заключается в том, что строка перед
Он есть в скрипте, но между обратным слешем и 2> "$TEMP" был пробел, стоило мне его убрать, как скрипт заработал...
Хотелось бы узнать об этом моменте:
Bizdelnick писал(а): ↑ 06.05.2017 19:25
Не то чтобы совсем ок — видно, что опция --notags не работает. Похоже, её добавили (точнее, перенесли из dialog) совсем недавно.
Как это исправить?
Переезжаю: Xubuntu ---> Debian = Переезд не удался
Janik
Сообщения: 849
Статус: Оператор вычислительных машин
ОС: Debian
Сообщение
Janik » 07.05.2017 21:29
Либо ковырять и пересобирать исходники, либо ждать обновлений.
Кто ищет, тот всегда найдет!
Опыт - это когда все получается с первого раза.
Bizdelnick
Модератор
Сообщения: 20791
Статус: nulla salus bello
ОС: Debian GNU/Linux
Сообщение
Bizdelnick » 07.05.2017 21:57
Novichok2016 писал(а): ↑ 07.05.2017 21:02
Хотелось бы узнать об этом моменте:
Bizdelnick писал(а): ↑ 06.05.2017 19:25
Не то чтобы совсем ок — видно, что опция --notags не работает. Похоже, её добавили (точнее, перенесли из dialog) совсем недавно.
Как это исправить?
Ждать, пока починят:
https://bugs.launchpad.net/ubuntu/+source/newt/+bug/1647762
Неплохо будет проголосовать за баг, потому что пока он не подтверждён — вряд ли кто-нибудь начнёт шевелиться.
Пишите правильно:
в консоли
вк у́пе (с чем-либо)
в о бщем
воо бще в течение (часа)
новичо к
ню анс
по у молчанию приемле мо
проблем а
пробо вать
траф ик
Novichok2016
Сообщения: 211
ОС: Xubuntu Core 16.04.3 x64
Сообщение
Novichok2016 » 07.05.2017 23:09
Janik писал(а): ↑ 07.05.2017 21:29
либо ждать обновлений.
Bizdelnick писал(а): ↑ 07.05.2017 21:57
Ждать, пока починят:
Ясно.
Переделал полностью скрипт:
Код: Выделить всё
#!/bin/sh -e
TEMP=$( mktemp )
trap "rm -f '$TEMP'" EXIT
whiptail --notags --checklist 'Выбор пакетов' 25 60 15 \
1 'update' off \
2 'upgrade' off \
3 'dist-upgrade' off \
4 'Драйвера Nvidia' off \
5 'Браузер Opera' off \
6 'Браузер Chrome' off \
7 'Виртуальный глобус Google Earth' off \
8 'Xneur' off \
9 'Видеоредактор Openshot' off \
10 'Видеоредактор Avidemux' off \
11 'Winusb' off \
12 'Слепок ОС Systemback' off \
13 'Peek. Запись GIF с экрана' off \
14 'VidCutter. Обрезка видео' off \
15 'Grub Customizer. Настройка меню граб' off \
16 'Disk Indicator' off \
17 'Управление ядрами UKUU' off \
18 'Ekstertera. Клиент Яндекс-Диск' off \
19 'LibreOffice' off \
20 'LibreOffice. Справка' off \
21 'LibreOffice. Локализация' off \
22 'Текстовый редактор Mousepad' off \
23 'file-roller' off \
24 'xfce4-netload-plugin' off \
25 'xfce4-places-plugin' off \
26 'xfpanel-switch' off \
27 'Часы Orage' off \
28 'update-manager' off \
29 'gtk-theme-config' off \
30 'update-notifier' off \
31 'lightdm-gtk-greeter-settings' off \
32 'zenity' off \
33 'imagemagick' off \
34 'gnome-calculator' off \
35 'transmission-gtk' off \
36 'menulibre' off \
37 'onboard' off \
38 'Браузер Firefox' off \
39 'Локализация Firefox' off \
40 'Оконный менеджер i3' off \
41 'i3blocks' off \
42 'nitrogen' off \
43 'lxappearance' off \
44 'rofi' off \
45 'terminator' off \
46 'rcconf' off \
47 'streamtuner2' off \
48 'scrot' off \
49 'unetbootin' off \
50 'key-mon' off \
51 'dconf-editor' off \
52 'gparted' off \
53 'gnome-disk-utility' off \
54 'gtk2-engines' off \
55 'baobab' off \
56 'clipit' off \
57 'gdebi' off \
58 'synaptic' off \
59 'gnome-system-monitor' off \
60 'gnome-system-log' off \
61 'p7zip-rar' off \
62 'p7zip-full' off \
63 'unace' off \
64 'unrar' off \
65 'zip' off \
66 'unzip' off \
67 'sharutils' off \
68 'rar' off \
69 'xchm' off \
70 'gtkhash' off \
71 'gufw' off \
72 'screenfetch' off \
73 'conky' off \
74 'conky-all' off \
75 'curl' off \
76 'lm-sensors' off \
77 'hddtemp' off \
78 'synapse' off \
79 'gimp' off \
80 'virtualbox' off \
81 'psensor' off \
82 'pinta' off \
83 'mypaint' off \
84 'gthumb' off \
85 'kazam' off \
86 'shutter' off \
87 'dia' off \
88 'qelectrotech' off \
89 'gresistor' off \
90 'gcolor2' off \
91 'imagination' off \
92 'vlc' off \
93 'usb-creator-gtk' off \
94 'winff' off \
95 'isomaster' off \
96 'gnome-games' off \
97 'nestopia' off \
98 'kdenlive' off \
99 'Локализация Kdenlive' off \
2> "$TEMP"
for action in $( cat "$TEMP" ); do
case "$action" in
'"1"')
apt-get update -y
;;
'"2"')
apt-get upgrade -y
;;
'"3"')
apt-get dist-upgrade -y
;;
'"4"')
add-apt-repository ppa:graphics-drivers/ppa
apt-get update -y
;;
'"5"')
add-apt-repository 'deb https://deb.opera.com/opera-stable/ stable non-free'
wget -qO- https://deb.opera.com/archive.key |
apt-key add -
apt-get update -y
apt-get install opera-stable -y
;;
'"6"')
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub |
apt-key add -
sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google-chrome.list'
apt-get update -y
apt-get install google-chrome-stable -y
;;
'"7"')
mkdir /tmp/google-earth && cd /tmp/google-earth
wget https://dl.google.com/dl/earth/client/current/google-earth-stable_current_amd64.deb
apt-get install ./google-earth-stable_current_amd64.deb -y
;;
'"8"')
add-apt-repository ppa:andrew-crew-kuznetsov/xneur-stable -y
apt-get update -y
apt-get install gxneur -y
;;
'"9"')
add-apt-repository ppa:openshot.developers/ppa -y
apt-get update -y
apt-get install openshot-qt -y
;;
'"10"')
apt-add-repository ppa:mc3man/avidemux1 -y
apt-get update -y
apt-get install avidemux -y
;;
'"11"')
add-apt-repository ppa:nilarimogard/webupd8 -y
apt-get update -y
apt-get install winusb -y
;;
'"12"')
add-apt-repository ppa:nemh/systemback -y
apt-get update -y
apt-get install systemback -y
;;
'"13"')
add-apt-repository ppa:peek-developers/stable -y
apt-get update -y
apt-get install peek -y
;;
'"14"')
add-apt-repository ppa:ozmartian/apps -y
apt-get update -y
apt-get install vidcutter -y
;;
'"15"')
add-apt-repository ppa:danielrichter2007/grub-customizer -y
apt-get update -y
apt-get install grub-customizer -y
;;
'"16"')
apt-add-repository ppa:teejee2008/ppa -y
apt-get update -y
apt-get install indicator-diskman -y
;;
'"17"')
apt-add-repository -y ppa:teejee2008/ppa -y
apt-get update -y
apt-get install ukuu -y
;;
'"18"')
add-apt-repository ppa:abbat/ekstertera -y
apt-get update -y
apt-get install ekstertera -y
;;
'"19"')
apt-get install libreoffice -y
;;
'"20"')
apt-get install libreoffice-help-ru -y
;;
'"21"')
apt-get install libreoffice-l10n-ru -y
;;
'"22"')
apt-get install mousepad -y
;;
'"23"')
apt-get install file-roller -y
;;
'"24"')
apt-get install xfce4-netload-plugin -y
;;
'"25"')
apt-get install xfce4-places-plugin -y
;;
'"26"')
apt-get install xfpanel-switch -y
;;
'"27"')
apt-get install orage -y
;;
'"28"')
apt-get install update-manager -y
;;
'"29"')
apt-get install gtk-theme-config -y
;;
'"30"')
apt-get install update-notifier -y
;;
'"31"')
apt-get install lightdm-gtk-greeter-settings -y
;;
'"32"')
apt-get install zenity -y
;;
'"33"')
apt-get install imagemagick -y
;;
'"34"')
apt-get install gnome-calculator -y
;;
'"35"')
apt-get install transmission-gtk -y
;;
'"36"')
apt-get install menulibre -y
;;
'"37"')
apt-get install onboard -y
;;
'"38"')
apt-get install firefox -y
;;
'"39"')
apt-get install firefox-locale-ru -y
;;
'"40"')
apt-get install i3 -y
;;
'"41"')
apt-get install i3blocks -y
;;
'"42"')
apt-get install nitrogen -y
;;
'"43"')
apt-get install lxappearance -y
;;
'"44"')
apt-get install rofi -y
;;
'"45"')
apt-get install terminator -y
;;
'"46"')
apt-get install rcconf -y
;;
'"47"')
apt-get install streamtuner2 -y
;;
'"48"')
apt-get install scrot -y
;;
'"49"')
apt-get install unetbootin -y
;;
'"50"')
apt-get install key-mon -y
;;
'"51"')
apt-get install dconf-editor -y
;;
'"52"')
apt-get install gparted -y
;;
'"53"')
apt-get install gnome-disk-utility -y
;;
'"54"')
apt-get install gtk2-engines -y
;;
'"55"')
apt-get install baobab -y
;;
'"56"')
apt-get install clipit -y
;;
'"57"')
apt-get install gdebi -y
;;
'"58"')
apt-get install synaptic -y
;;
'"59"')
apt-get install gnome-system-monitor -y
;;
'"60"')
apt-get install gnome-system-log -y
;;
'"61"')
apt-get install p7zip-rar -y
;;
'"62"')
apt-get install p7zip-full -y
;;
'"63"')
apt-get install unace -y
;;
'"64"')
apt-get install unrar -y
;;
'"65"')
apt-get install zip -y
;;
'"66"')
apt-get install unzip -y
;;
'"67"')
apt-get install sharutils -y
;;
'"68"')
apt-get install rar -y
;;
'"69"')
apt-get install xchm -y
;;
'"70"')
apt-get install gtkhash -y
;;
'"71"')
apt-get install gufw -y
;;
'"72"')
apt-get install screenfetch -y
;;
'"73"')
apt-get install conky -y
;;
'"74"')
apt-get install conky-all -y
;;
'"75"')
apt-get install curl -y
;;
'"76"')
apt-get install lm-sensors -y
;;
'"77"')
apt-get install hddtemp -y
;;
'"78"')
apt-get install synapse -y
;;
'"79"')
apt-get install gimp -y
;;
'"80"')
apt-get install virtualbox -y
;;
'"81"')
apt-get install psensor -y
;;
'"82"')
apt-get install pinta -y
;;
'"83"')
apt-get install mypaint -y
;;
'"84"')
apt-get install gthumb -y
;;
'"85"')
apt-get install kazam -y
;;
'"86"')
apt-get install shutter -y
;;
'"87"')
apt-get install dia -y
;;
'"88"')
apt-get install qelectrotech -y
;;
'"89"')
apt-get install gresistor -y
;;
'"90"')
apt-get install gcolor2 -y
;;
'"91"')
apt-get install imagination -y
;;
'"92"')
apt-get install vlc -y
;;
'"93"')
apt-get install usb-creator-gtk -y
;;
'"94"')
apt-get install winff -y
;;
'"95"')
apt-get install isomaster -y
;;
'"96"')
apt-get install gnome-games -y
;;
'"97"')
apt-get install nestopia -y
;;
'"98"')
apt-get install kdenlive -y
;;
'"99"')
apt-get install kde-l10n-ru -y
;;
esac
done
Скрипт работает:
https://youtu.be/a4JAHqCmQVM
Было бы не плохо, если бы сделать подразделы и возможность выбрать все сразу, но и так хорошо.
Переезжаю: Xubuntu ---> Debian = Переезд не удался