PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Shell Kommando innerhalb vom sed string ausführen



spacewan
24.06.09, 08:36
Hi Leute!
Ich brauche mal ein bisschen Hilfe mit sed, denn da bin ich nicht so ganz auf Zack.
Ich möchte eine Zeile in die passwd einfügen, den Wert bekomme ich über ein ECHO oder ggf. eine Variable.

Das sieht/sollte so aussehen:
sed '/\+\:\:\:\:\:\:/ i\echo ${login}::${uid}:${gid}:${fullname}:${homedir}:$sh ell' $pwfile

Aber wie kann ich innerhalb eines sed strings ein shell Kommando ausführen oder eine Variable abfragen?

Kann mir da jemand weiter helfen?
Danke und Grüße Spacewan

marce
24.06.09, 10:11
das echo brauchst Du nicht. Es sollte einfach über die Variablen an sich funktionieren.

spacewan
24.06.09, 10:15
Ja alles schön und gut. Darum ging es nicht, sondern wie das geht. Denn innerhalb des strings ist das so nicht möglich, es wird wegen den ' ' ja nichts interpertiert was die Shell betrifft.

buzz768
24.06.09, 12:15
Dann musst du dafür sorgen, dass alles, was von der Shell interpretiert werden soll, nicht innerhalb einfacher Anführungszeichen steht. Also den String an diesen Stellen unterbrechen oder doppelte oder gar keine Anführungszeichen verwenden.

spacewan
29.06.09, 11:35
Hab's rausbekommen, das geht so:

sed '/\+\:\:\:\:\:\:/ i\'"$UDATA"'' $PWDFILE > $TMPFILE

wo es nicht doppelte gänsef sind sondern: ' "$.." '