gdialog variablen weitergeben

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
sschock
Beiträge: 473
Registriert: 18.11.2002 05:18:38
Wohnort: Köln
Kontaktdaten:

gdialog variablen weitergeben

Beitrag von sschock » 23.01.2004 12:27:25

Hallo habe ein kleines script geschrieben:

Code: Alles auswählen

#!/bin/sh
# Needed to make symlinks/shortcuts work.
cd /vario/.com
url=`gdialog --inputbox "pfad" 90 90`
wget -m $url
Leider will das nicht, als Fehlermeldung erhalte ich

Code: Alles auswählen

wget: URL fehlt
Syntax: wget [OPTION]... [URL]...
Was habe ich übersehen, oder kann ich die variable "url" so nicht definieren?

Danke!

Grüsse
sschock
Wo das Chaos auf die Ordnung trifft, gewinnt meist das Chaos, weil es besser organisiert ist.
-Friedrich Nietzsche-

jabber-ID: sschock@amessage.de

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Beitrag von roli » 26.01.2004 14:48:56

Hi,

ohne es jetzt und hier testen zu koennen, du oeffnest hier ein Popup Window, das Pfad heisst, und 90x90 gross ist, mehr nicht, oder verstehe ich das falsch?
Joh, habe ich! Siehe unten

Was erwartest du denn, das dann in der Variable url stehen soll, nachdem das Popup erschienen ist? Und dann, wo soll es her kommen?
Ich nehme alles zurueck, und bekaupte das Gegenteil! Wer lesen kann, kann auch kochen. Ich koche recht selten ...


OK, vergiss das, ich habe eben ein Manual im Netz http://linux.about.com/library/cmd/blcmdl1_gdialog.htm gefunden. Da steht:
On exit, the input string will be printed on stderr.
Du musst demzufolge den Stderr der Variable zuweisen.
Gehen koennte das mit

Code: Alles auswählen

url=`gdialog --inputbox "pfad" 90 90 2>&1` 
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Benutzeravatar
spiffi
Beiträge: 1128
Registriert: 09.08.2003 19:02:27

Beitrag von spiffi » 26.01.2004 15:09:02

sschock, bei mir funktioniert Dein Skript einwandfrei.
Debug doch mal das Shellskript mit

Code: Alles auswählen

#!/bin/sh -x

sschock
Beiträge: 473
Registriert: 18.11.2002 05:18:38
Wohnort: Köln
Kontaktdaten:

Beitrag von sschock » 26.01.2004 16:45:24

@roli: Danke, vielen Dank, wusste zwar auch schon das stderr angesprochen wird... aber ich wusste nicht wie ich das umleite. Jetzt lööpt dat.

@spiffi: hm debug bringt auch keine Fehlermeldung... wundert mich aber schon das es bei dir läuft ;)

Andere Frage...
Habt ihr ne Ahnung wie ich das in eine Schleife packe?
Wollte mir ein einfaches downloadscript machen.
quasi so:
gdialog fragt nach dem Pfad, macht ein externes xterm auf und dann kommt wieder gdialog...
Grundstruktur ist ja schon vorhanden... ich weiss jetzt net ob ich das mit loop realisieren kann?
mein scriptwissen ist auf ein frühes c64 scripting der einfachsten art aufgebaut...
naja muss mal weiter fleissig manpages lesen ;)

Grüsse und nochmal danke
sschock
Wo das Chaos auf die Ordnung trifft, gewinnt meist das Chaos, weil es besser organisiert ist.
-Friedrich Nietzsche-

jabber-ID: sschock@amessage.de

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Beitrag von roli » 29.01.2004 16:52:09

Hi sschock,

ich habe hier mal eben ein kleines Script geschrieben, ich hoffe es hilft:

Code: Alles auswählen

a=1
while [ "$a" != "" ]
do
{
  echo "Bitte etwas eingeben, wenn leer, dann Ende"
  read a
  echo "Eingegeben wurde: $a"
}
done
Erklaehrung:
Zeile 1) einfach eine Dummy Belegung der Variable, damit die Pruefung in der neachsten Zeile erfolgreich ist
Zeile 2) Hier beginnt meine while schleife, geprueft wird wird ob die Variable a nicht leer ist. Die Anfuehrungszeichen, besonders die um $a, sind notwendig, da test dir sonst im falle das a leer ist eine Fehlermeldung a la "Mir wurde nur eine Variable uebergeben". die eckigen Klammern sind uebrigens eine Kurzform von test (=> man test, man [ bringt nix).
Zeile 3) So ist die Shell halt, auf ein while folgt ein do
Zeile 4) und auf ein do die Klammer, wenn hierauf ein Block von Befehlen folgt
Zeile 5-7) hier stehen die Befehle die in der Schleife ausgefuehrt werden sollen. Zugegeben mein Beispiel ist nicht sehr geistreich, aber es zeigt das Prinzip.
Zeile 8) Eine geoeffnete Klammer mus auch geschlossen werden, schliesslich ist das ein Shell-Script und kein HTML
Zeile 9) dito

Viel Erfolg, wenn mein Loesungsansatz an deinem Problem vorbei geht, melde dich. Uebrigens schau die mal das Manual deiner Shell an (also z.B. man bash), while, do, ... sind "build in" in der Shell, man while bringt daher nichts.
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

sschock
Beiträge: 473
Registriert: 18.11.2002 05:18:38
Wohnort: Köln
Kontaktdaten:

Beitrag von sschock » 31.01.2004 01:50:08

Vielen Dank Roland...
Genau das wars...
Hm.. die Man lesen ist das eine... das ganze umsetzen das andere...
Hab mich irgendwie in der schleife verheddert... und brauchte einfach den nen kleinen Denkanstoss...
Danke. :)

SEbastian
Wo das Chaos auf die Ordnung trifft, gewinnt meist das Chaos, weil es besser organisiert ist.
-Friedrich Nietzsche-

jabber-ID: sschock@amessage.de

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Beitrag von roli » 31.01.2004 13:17:40

Hi Sebastian,
sschock hat geschrieben:Hm.. die Man lesen ist das eine... das ganze umsetzen das andere...
Hab mich irgendwie in der schleife verheddert... und brauchte einfach den nen kleinen Denkanstoss...
das geht nicht nur dir so, was nuetzt das beste Buch, wenn man nicht (so genau) weiss wonach man suchen soll. Wobei mit den Manuals ist's sogesehen noch viel schlimmer, da steh'st du gleich in einer ganzen Bibliothek voll (guter) Buecher, nur welches soll man aus 'm Regal nehmen?

Roland
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Antworten