Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Wywołanie whiptail z pod skryptu

3 views
Skip to first unread message

jawors...@adres.pl

unread,
Feb 18, 2020, 3:13:42 PM2/18/20
to
Cześć!

Wpakowałem się w robienie własnego instalatora dla Linux-a. Pierwszą wersję mam już "wstępnie zakodowaną" teraz ją uruchamiam. Napotkałem problem z jakim nie potrafię sobie poradzić. Mam skrypt 20-license.sh używający whiptail (okrojony następca dialog-a) wyświetlający licecję w celu zmuszenia użytkownika do jej zaakceptowania. Skrypt wywoływany bezpośrednio z konsoli działa. Jednak ja mam więcej skryptów do wywołania w czasie instalacji i wywołuję je "budując" komendę w Bash-u. Próbowałem różnych "sztuczek" i różnych porad z internetów jednak nic one nie dały. Skrypt się uruchamia, nie wyświetla na bieżącej konsoli okienka tylko "gdzieś indziej". Jak kliknę TAB i ENTER skrypt poprawnie się kończy potwierdzeniem licencji.

Proszę o pomoc i z góry dzięki!
Jacek

System: Kubuntu 19.10, testowane w emulatorze terminala Konsole.

Komenda która działa:
$/var/tmp/racja-istnienia-3.0.0-setup/sbin/pre-install/20-license.sh "/var/tmp/racja-istnienia-3.0.0-setup/share/racja-istnienia/license.txt"

Komenda która nie działa a (chyba) powinna:
$ i="\$(/var/tmp/racja-istnienia-3.0.0-setup/sbin/pre-install/20-license.sh \"/var/tmp/racja-istnienia-3.0.0-setup/share/racja-istnienia/license.txt\")"
$ echo $i
$(/var/tmp/racja-istnienia-3.0.0-setup/sbin/pre-install/20-license.sh "/var/tmp/racja-istnienia-3.0.0-setup/share/racja-istnienia/license.txt")
$ eval $i

To ostanie wypisuje:
: nie znaleziono polecenia


Kod problematycznego skryptu jest taki:

#!/bin/bash

############################################################################
# Global variables

gLicenseFile="$1"

gScriptName="$(basename $0)"
gScriptName="${gScriptName%.*}"

############################################################################
# Functions

function gHelp
{
echo "Directory selection script based on whiptail menu."
exit 1
}

[ "$1" = "-h" ] && gHelp
[ "$1" = "--help" ] && gHelp

############################################################################
# Main

[ ! -f "$gLicenseFile" ] && echo "License file not found! Missing file: $gLicenseFile" && exit 1

if(whiptail --title "Licensing Info" --textbox "$gLicenseFile" --scrolltext 25 75 --ok-button "Press to confirm" --fb); then
echo "License accepted!"
exit 0
else
echo "License rejected!"
exit 1
fi

Roman Tyczka

unread,
Feb 19, 2020, 3:35:24 AM2/19/20
to
On Tue, 18 Feb 2020 12:13:41 -0800 (PST), jawors...@adres.pl wrote:

> Wpakowałem się w robienie własnego instalatora dla Linux-a. Pierwszą wersję mam już "wstępnie zakodowaną" teraz ją uruchamiam. Napotkałem problem z jakim nie potrafię sobie poradzić. Mam skrypt 20-license.sh używający whiptail (okrojony następca dialog-a) wyświetlający licecję w celu zmuszenia użytkownika do jej zaakceptowania. Skrypt wywoływany bezpośrednio z konsoli działa. Jednak ja mam więcej skryptów do wywołania w czasie instalacji i wywołuję je "budując" komendę w Bash-u. Próbowałem różnych "sztuczek" i różnych porad z internetów jednak nic one nie dały. Skrypt się uruchamia, nie wyświetla na bieżącej konsoli okienka tylko "gdzieś indziej". Jak kliknę TAB i ENTER skrypt poprawnie się kończy potwierdzeniem licencji.

Może raczej zapytaj na grupie pl.comp.os.linux - tam jest szansa na
odpowiedź

--
pozdrawiam
Roman Tyczka
0 new messages