Dialogboxen

Nexus633

Nexus633

Eroberer
Hallo,
ich setzte mich seit einigen Wochen/Monaten mit der bash/Shell auseinander.
Nun habe ich folgendes Problem.

Ich bin mit Entwickler der Software easyPANEL.
easyPANEL ist ein Webinterface was mittels Shell Skripte Server steuert.

Nun möchte ich meinen Anwendern auch ein Ordentliches Install Script schreiben.
Dazu verwende ich "Dialog"

Bei dem Paket "Dialog" stellte ich leider fest, das es ja net so dolle ausschaut, vlt. liegt es ja auch an mir.

ein kleines Beispiel.

dialog.png

Code:
dialog --msgbox "Diese k,x,u,q und j\nrechts der Box meine ich" 10 0


Wie bekomme ich diese k,x,u,q und j weg, das ich ein sauberes Script bekomme ?
 
Hallo

nutzt du auf dem PC utf-8 ?

Mit welchem Terminal rufst du du das script auf ?

Nimm mal einen anderen Terminal

mfg
schwedenmann
 
Hallo,
ich nutze Windows, bin in der "Bash", verbinde mich mit Putty.
Ich habe das gefühl das es an Debian 7 liegt.

Giebt es noch andere Möglichkeiten dialogboxen zu schreiben?

getestet habe ich:
dialog
whiptail (wobei hier weiter pakete vorhanden sein müssen)
Xdialog (wobei hier weiter pakete vorhanden sein müssen)

Ich wollte das ganze auch schon C/C++ machen leider suche ich mic da zu tode :-)
 
Das liegt am verwendeten Charset.

Wenn du in Putty testweise auf das Charset "ISO-8859-1:1998 (Latin-1, West Europe)" umstellst, wird es wie im Screenshot aussehen.

Das aktive Charset ist im Normalfall in $LC_CTYPE gespeichert bzw. lässt sich auch darüber ändern - solange das gewünschte Charset überhaupt vorhanden ist...

PS: Im Beispiel ebenfalls über Putty auf einem Debian in der Bash.
 

Anhänge

  • bsp.PNG
    bsp.PNG
    4,7 KB · Aufrufe: 17
Zuletzt bearbeitet von einem Moderator:
Ahh super.
Ok mit den Charsets habe ich mich noch nicht auseinandergesetzt.

A: Wie kann ich das im Script anwenden ?
B: Wie kann ich vorraussetzten das Der Kunde das installiert hat ?

Ich danke für eure Hilfe :-)
 
Zu A:
Du kannst im Script die Variable LC_CTYPE entsprechend setzen. Dies gilt dann für die aktive Shell - also nur für dein Script. Alle anderen Shells sind davon dann nicht betroffen.

Zu B:
Code:
locale -a
gibt dir eine Übersicht der verfügbaren Locale+Charmaps.

Ich würde spezielle Locale oder Charset aber nicht als Voraussetzung für dein Tool nehmen....
UTF-8 ist m.M. nach am weitesten verbreitet und als Serveradmin würde ich keine Software einsetzen, die mich dazu zwingt, spezielle Charsets zu installieren...
 
Genau das ist der Punkt :-)
Ich möchte nur Standard Material verwenden.
Dem Kunde ist es selber überlassen welche Software er hat.

Ich möchte allerdings das es natürlich überall funzt :-)
Somit muss ich ja Software nutzen die jedes system von grundauf Installiert hat :-)

Ich werde das mal testen und werde gleich was dazu schreiben :-)
Ich danke dir
 
Ich sage ja im bereich Bash/Shell habe ich noch einiges zu lernen :-)

Ich habe es jetzt mal ausprobiert so wie ich es einsetzten würde: (Halt Ahnungslos)

Code:
#!/bin/bash


LC_CTYPE=de_DE.utf8
DIALOG=${DIALOG=dialog}

$LC_CTYPE

$DIALOG --title " Ein Dialog" --clear \
        --yesno "So habe ich es versucht :-)" 10 30

case $? in
  0)
    clear
    echo "Yes2 chosen.";;
  1)
    clear
    echo "No2 chosen.";;
  255)
    clear
    echo "ESC pressed.";;
esac

Leider ohne erfolg.
Das hornt mich so sehr :-)
 
Environment-Variablen werden wie folgt gesetzt:
Code:
export LC_CTYPE=de_DE.utf8

Und was erhoffst du dir von
Code:
$LC_CTYPE
? Sollte wohl eher
Code:
echo $LC_CTYPE
heißen, wenn es dir um die Ausgabe geht...

Edit: Oder aber du wolltest folgendes:
Code:
LC_CTYPE=de_DE.utf8
export $LC_CTYPE
Das geht natürlich auch.

PS: Du musst natürlich beachten, dass die Änderungen, die du durchführst sich nur auf Sessions direkt auf der Shell auswirken. Putty überschreibt die Einstellung eben mit der oben genannten Einstellung.
 
Zuletzt bearbeitet von einem Moderator:
Super :)
ich danke dir :) :)

Ich frage viel ich weiß. Tut mir leid :-)
Und meine Vorgehendsweise ist auch nicht immer die bester.
Mit Export habe ich bis Dato noch nicht gearbeitet.

Ich wette auch mit dir, das wenn du über Teamviewer auf meine Arbeiten schaust, du mit dem Kopf schütteln würdest :-)

Es sind eindeutig zuviel Charset´s um die jetzt hierrein schreiben zu können.

de_DE.utf8 hat es nicht gebracht.

Ich teste auch alle runter :-)
Kannst du mir das sagen welcher der richtige ist ?
UTF-8 gibt es viele .-)
 
Ich teste auch alle runter :-)
Kannst du mir das sagen welcher der richtige ist ?
UTF-8 gibt es viele .-)
Wenn du dich mit Putty verbindest, bringt dir eine Änderung der Charmap nichts, da Putty seine eigene Einstellung verwendet.

Warum suchst du denn eigentlich die "richtige" Charmap? Nur um diese Zeichen um den Dialog weg zu bekommen?

Ich würde mal behaupten, dass es einem Systemadmin wenig auf das Aussehen ankommt - solange es eben tut, was es soll! (wir sind es gewohnt, unter der Shell zu arbeiten - und zumindest ich bin froh drum ;) )
Mir ist sogar ein Script lieber, welches ohne Dialog auskommt (ist z.B. auch nicht überall standardmäßig dabei) und mir lieber ausführliche Informationen direkt auf der Shell ausgibt und mich auch dort nach Eingaben frägt, die ich per "y" oder "n" oder ähnliches beantworte...
 
ch würde mal behaupten, dass es einem Systemadmin wenig auf das Aussehen ankommt

Klar.
Ich stehe aber auf aussehen und Funktion. Irgendwo hebt es einen auch von einen Anderen ab.
Mir geht es da um die Kunden.
Klar ich würde es auch so lassen (wenn es sein muss), wenn ich es allerdings vermeiden kann mache ich es anders :)

Ich möchte am liebsten das es Perfekt ist. Ein schönes aussehen eine gute Funktion sagt schon eineges aus.
Vorallem steht da ja ein Unternehmen dahinter :)
Da ist es mir noch wichtiger :)
 
Ich setze meist LC_ALL=C. Solange Du nur 7bit-ASCII benutzt, muesste das funktionieren.
 
Es will bei mir einfach nicht Funktionieren.

Ich bekomme immer diese Fehler in der Dialogbox.
Das ärgert mich richtig :(

Nochmal zur erleuterung:
Ich möchte das ganze als ein Installer Nutzen.
Dieser soll die für das Webinterface benöigten Pakete Installieren.

Derzeit läuft es alles Ohne Dialog.
Wir wollen es aber Ordentlicher aussehen lassen mit Dialogboxen oder anderen Dialogen die auf dem Grundsystem vorhanden sind.

Das Problem an der sache sind die Fehlerhaften Zeichen im Dialog. (Siehe Bild Oben 1. Post)
Ich habe nun alles was hier geschrieben wurden ist ausprobiert Ohne erfolg :(

Kann mir jemand ein kleines beispiel in form eines Scripts zeigen.

Code:
#!/bin/bash

LC_CTYPE=de_DE.utf8
export $LC_CTYPE

DIALOG=${DIALOG=dialog}

$DIALOG --title " Ein Dialog" --clear \
        --yesno "So habe ich es versucht :-)" 10 30

case $? in
  0)
    clear
    echo "Yes2 chosen.";;
  1)
    clear
    echo "No2 chosen.";;
  255)
    clear
    echo "ESC pressed.";;
esac

So ein Beispiel ? :)

Ihr würdet mir sehr helfen.
 
Ich habe dir doch schon 2x geschrieben, warum das mit Putty direkt im Script nicht funktioniert und du die Einstellung in den Putty-Settings vornehmen musst?!
nighT schrieb:
Wenn du in Putty testweise auf das Charset "ISO-8859-1:1998 (Latin-1, West Europe)" umstellst, wird es wie im Screenshot aussehen.
nighT schrieb:
Wenn du dich mit Putty verbindest, bringt dir eine Änderung der Charmap nichts, da Putty seine eigene Einstellung verwendet.

Und dialog ist, soweit ich weiß, unter Debian und auch unter Fedora/CentOS nicht standardmäßig installiert!
 
OK, das habe ich dann falsch verstanden. Sorry.
Ja habs jetzt auch hinbekommen.

Doch Dialog ist ein standard Programm von Debian und Ubuntu :-)
Zu den anderen kann ich nichts sagen, das weiß ich nicht.
 
Ich kann nur sagen das auf jedem meiner Server Systeme Dialog Standard mäßig auf dem Image ist.
Diese .ISO´s kommen von debian.org und ubuntu.com. :-)

Aber dnke für den Hinweiß :-)

Wie gesagt ich bin auch für Alternativen offen zu dialog :-) ?!
 
Guten Abend,
hat keine hier eine Alternative?
Vorzugsweise auch in einer anderen Sprache !?

Ich wäre euch sehr dankbar :)
 
Du hast in post #16 geschrieben, dass Du es hinbekommen haettest. Wozu suchst Du jetzt noch eine Alternative?
 

Ähnliche Themen

Server-Monitoring mit RRDTool

Zurück
Oben