[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Shell--Dialog--Wo ist derFehler



Thomas Halinka <thohal84@yahoo.de> (So 28 Jan 2007 23:23:45 CET):
> Heiko Schlittermann schrieb:
> > ... 
> >   
> Ok danke - Tut....
> 
> Ist es irgendwie noch möglich STDOUT in meinen Dialog reinzubekommen...
> 
> zB:
> zB...
> else
> dialog --infobox "Removing $i" 5 70
> rm $i"
> dialog --infobox "STDOUT" 5 70
> fi

dialog --messagebox "$(ls -l)" 0 0

Es gibt bestimmt noch besseres.  Vielleicht mit der tailbox?  Aber ich
kenne mich nicht wirklich aus mit dialog.

> Oder wie macht man das mit den schönen Echos in den Scripten?
?? Wie meinst Du das?
> > Festen Text, den Du selbst reingehackt hast, mußt Du nicht unbedingt
> > quoten, denn Du weißt ja, ob er Teile enthält, die die Shell nicht mag.
> > Na ja - und zu viel gequoted ist auch nicht gut, wie man jetzt weiß ;-)
> >   
> Die Dinger kosten mich als immer meine Nerven (wie du weißt, wenn du dir
> Liste öfter liest...) :-)

Nun, für den Anfang sind die Regeln vielleicht nicht übersichtlich,
danach dann schon.  

    . Quoten:	' hilft gegen alles
		" hilft gegen alles außer Variablen- und
		  Kommando-Expansion (kurz: alles, was $ davor hat)

    . Quoten ist notwendig, wenn Du Shell-Metazeichen in den Texten hast
    und willst die Shell daran hindern, etwas damit anzustellen.
    Folgende Zeichen sind gefährlich:

		(){}[]<>;*?&$\'"<Leerzeichen><Tab><Zeilenumbrüche>

    . Quoten ist auch notwendig, wenn Du Variablen verwendest, wo Du
    nicht weißt, was drinsteht.

	Z.B.:	A=Hallo
		test $A = Hallo		# ist ok

	aber	read A
		test "$A" = Hallo	# Quoting ist notwendig

Problematisch wird es dann erst wieder später, wenn
man versucht ist, mit allen möglichen Leerzeichen, Zeilenumbrüchen und
ähnlichem zurecht zu kommen.  Da bieten sich andere Scriptsprachen dann
eher an.  Historisch bedingt verwende ich da immer Perl, aber ich will
jetzt hier keinen Religionskrieg anstiften :-)

-- 
Heiko

Attachment: signature.asc
Description: Digital signature


Reply to: