LINUX.ORG.RU

Сообщения satewriter128

 

Авто пароль и авто ответ в sudo. Скрипт Bash

И снова доброго времени суток. Уже обращался сегодня и помогли. А теперь новая проблема

Не получается автоматически подставить пароль в sudo и ответ yes для установки

if [[ $ChangeMenu = $InstallSSHServer ]]; then
	echo "1 $ChangeMenu"
	PASSWD=$(zenity --password --title="Authentication")
	if [[ -z $PASSWD ]]; then
		zenity 	--error \
       			--text="Введите пароль!!!"\
       			--no-wrap
	else 
		(echo "0" ; sleep 2
		echo "# Начинаю обновление пакетов" ; sleep 2	
		$PASSWD | sudo apt-get update 
		echo "25" ; sleep 2
		echo "# Обновление пакетов завершено" ; sleep 2
		echo "# Начинаю установку ssh" ; sleep 2
		echo "30" ; sleep 2
		$PASSWD yes | sudo apt-get install ssh 
		echo "80" ; sleep 2
		echo "# Установка ссн завершена" ; sleep 2
		echo "Готово" ; sleep 2
		echo "100" ; sleep 2
		) |
		zenity --progress \
       --title="Конфигурирование" \
       --text="Инициализация..." \
	   --auto-close \
	   --percentage=0
		
      fi	
fi

Выход :
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
./1test.sh: строка 38: 123: команда не найдена

123 Это введенный пароль

Похоже это как-то связано с zenity --progress Может есть другой способ установки. Но так чтоб пользователь видел хоть какую-то деятельность, а не так-что не понятно что-там происходит. Потому-что скрипт будет запускаться не из терминала, а по двойному клику

 , , ,

satewriter128
()

Bash + zenity Ubuntu 16.04

Доброго времени суток. Пишу скрипт на bash. Использую zenity и возникла проблема с обработкой выбранного элемента radiolist

#!/bin/bash
#Окной 1 Выбор действия. Установить сервер, клиент или подключиться
InstallSSHServer='Install-SSH-Server'
OptionsClient='Options-Client'
Connect='Connect'
qwe="test"
Win1=`zenity --list --radiolist --height 260 \
       --title="SSH для чайников" \
       	--text="Выберите действие \n 
	Выберите Установка SSH сервера если хотите установить сервер на данную машину \n
	Выберите Установка Клиента если хоитие настроить клиент \n
	Выберите Подключиться у вас уже есть сервер и клиент SSH" \
       --column="Отметка выбора" --column="Действие" \
       		FALSE 	$InstallSSHServer \
		FALSE 	$OptionsClient \
		FALSE 	Connect `

if [[ -z $Win1 ]]; then
    exit
fi
ChangeMenu=$Win1
echo "Win1= "$Win1
echo "ChangeMenu= "$ChangeMenu

#if [[$ChangeMenu = $InstallSSHServer]]; then
#	echo "1 $ChangeMenu"
#fi

#if [["$ChangeMenu" = "$OptionsClient"]]; then
#	echo "2 $ChangeMenu" 
#fi
#
if [[$ChangeMenu == $Connect]]; then
	echo "$qwe 3"
fi

и вот какие результаты я получаю : Сначала открывает окно zenity. С ним все впорядке. Я выбираю нужный мне чекбокс и жму «ОК» и в терминале появляется следующая запись


vlad@vlad-PC:~/skr$ ./1test.sh
Gtk-Message: GtkDialog mapped without a transient parent. This is discouraged.
Win1= Connect
ChangeMenu= Connect
./1test.sh: строка 34: [[Connect: команда не найдена

Далее я попробовал сделать сравнение напрямую через терминал и получил такую же ошибку и значение False там, где должно быть True


vlad@vlad-PC:~/skr$ a='qwe'
vlad@vlad-PC:~/skr$ b='qwer'
vlad@vlad-PC:~/skr$ c='qwe'
vlad@vlad-PC:~/skr$ [[$a == $c]] && echo «True» || echo «False»
[[qwe: команда не найдена
False

 , , ,

satewriter128
()

RSS подписка на новые темы