PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Eintraege in der /etc/passwd....



johny_walker
14-10-2005, 10:29
Hallo zusammen,
ich habe versucht mit einem kleinem Shellskript gewisse Eintraege in der /etc/passwd zu aendern.
Und es klappt nicht.Hier ist das Skript..Es gibt keine Fehlermeldung aber es funktioniert auch nicht....:=((
#!/bin/sh
passwd="/home/peter/skrpte/passwd_org"
replace="sy-wipro:x:910001:9110::/home/sy-wipro:/usr/bin/bash"
oldshell="sy-wipro:x:910001:9110::/home/sy-wipro:/bin/sh"
perl -p -i.bak -e 's/\Q$ENV{oldshell}\E/$ENV{replace}/g' $passwd

Mir sind die Ideen ausgegangen....

Vielen Dank fuer jeden Tip...

johny_walker

michael.sprick
14-10-2005, 11:56
#!/bin/sh
passwd="/home/peter/skrpte/passwd_org"
export replace="sy-wipro:x:910001:9110::/home/sy-wipro:/usr/bin/bash"
export oldshell="sy-wipro:x:910001:9110::/home/sy-wipro:/bin/sh"
perl -p -i.bak -e 's/\Q$ENV{'oldshell'}\E/$ENV{'replace'}/' $passwd


wenn Du die Variablen exportierst, sind sie auch in %ENV enthalten ;)
Bei der Regexp kannst Du Dir den modifier 'g' eigentlich sparen - der Eintrag ist ja sowieso nur einmal in der passwd vorhanden... (sollte er zumindest)

johny_walker
14-10-2005, 12:25
Oh das ist ja einfach....ich koennte mich selbst beissen. ;=))

Vielen Dank

johny_walker