PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie eine Variable definieren, dass Backslashes UND Variablen ausgegeben werden?



d@tenmaulwurf
11-07-2006, 14:59
Moin!

Wenn ich eine Variable so definiere:

foo='\$bar'

wird zwar der Backslash ausgegeben (so wie es sein soll), aber das $ wird entschärft, weshalb die Variable $bar nicht aufgelöst wird (soll _NICHT_ sein)

Mit:

foo=''\$bar'' <- (das sind 2 einfache Anführungsstriche hintereinander!)

wird die Variable $bar aufgelöst, jedoch der Backslash wird ignoriert.

Was aber wenn ich beides will?

Vielen Dank im voraus,

d@tenmaulwurf

RAHUL
11-07-2006, 15:46
Ich argumentiere mal in der bash,


foo=''\$bar'' <- (das sind 2 einfache Anführungsstriche hintereinander!)

wird die Variable $bar aufgelöst, jedoch der Backslash wird ignoriert.

Das stimmt meines Wissens nicht, der Backslash-Zeichen "escape"t doch das $Zeichen,
so daß $bar nicht interpoliert wird

wenn du allerdings das Backslash-Zeichen erst "esape"st, sollte das doch so funktionieren,
wie du es beschrieben hast.


foo="\\$bar"

Wenn du allerdings nicht interpolieren willst und das Backslash-Zeichen, so mußt du sowohl Backslash als auch $ escapen.


foo="\\\$bar"


MfG
Rahul

d@tenmaulwurf
11-07-2006, 18:12
Ich argumentiere mal in der bash,



Das stimmt meines Wissens nicht, der Backslash-Zeichen "escape"t doch das $Zeichen,
so daß $bar nicht interpoliert wird

wenn du allerdings das Backslash-Zeichen erst "esape"st, sollte das doch so funktionieren,
wie du es beschrieben hast.


foo="\\$bar"

Wenn du allerdings nicht interpolieren willst und das Backslash-Zeichen, so mußt du sowohl Backslash als auch $ escapen.


foo="\\\$bar"


MfG
Rahul

In beiden Varianten wird bei mir der Backslash nicht angezeigt :|

d@tenmaulwurf
11-07-2006, 18:17
In beiden Varianten wird bei mir der Backslash nicht angezeigt :|

Kommando zurück.
So funzt das, aber wenn ich via sed einen Platzhalter in einem Dokument durch diesen String in der Variable $foo ersetzen will verschwinden die Leerzeichen.
Ist das normal?

d@tenmaulwurf
11-07-2006, 18:34
Oh, mit 4 Backslashes kommt es dann auch im Dokument an :)

Romanday
11-07-2006, 20:27
Oh, mit 4 Backslashes kommt es dann auch im Dokument an :)

Alles braucht seine Zeit. :D
Ein wenig Geduld mußt du mitbringen.