LINUX.ORG.RU

Bash + zenity Ubuntu 16.04

 , , ,


0

1

Доброго времени суток. Пишу скрипт на 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 (всего исправлений: 5)

Ответ на: комментарий от uCore

А вообще, тебе вроде русским языком ошибка написана.

uCore
()
Ответ на: комментарий от legolegs

О господи, спасибо тебе большое. Никогда бы не подумал, что отсутсвие пробелов после[[ и до ]] будет вызывать такие проблемы

satewriter128
() автор топика
Ответ на: комментарий от satewriter128

В баше пробелы (и разные кавычки) - важнейший элемент синтаксиса, почти как скобки в лиспе.

legolegs ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.