Bash: In der letzten Zeile nach dem letzten Zeichen eine Zeichenfolge anfügen

Ageoffall

Cadet 4th Year
Registriert
Apr. 2011
Beiträge
79
Hallo Zusammen,

ich bin gerade dabei ein kleines Skript zu schreiben welches die Useranlage unter Linux erleichtert.
Mein Problem ist das ich dem User noch irgendwie die Shell in der /etc/passwd mitgeben muss. Jedoch weiß ich nicht wie ich es hinbekomme in der letzten Zeile, nach dem letzten Zeichen, die Shell anzugeben.

Daher meine Frage: wie schaffe ich es in der letzten Zeile nach dem letzten Zeichen eine Zeichenfolge anzuhängen?


Ich danke euch für eure Hilfe,

Julian :)
 
Wie legst du denn den User im Skript an?
Falls du useradd nimmst, wovon ich schon fast ausgehe, dann nutze doch gleich den Parameter -s.

Edit: Wie sollte es einfacher als mit useradd oder adduser sein?
 
Und das passiert wenn man die Man Pages nicht liest -.-.

Danke für den Tipp, damit hat es wunderbar funktioniert.

E: Erleichtern ist wohl der falsche Begriff, es geht eher darum einfach bei einem geklonten System diverse Systemanpassungen vorzunehmen ohne großartig in irgendwelchen Config Dateien rumzuhüpfen.
 
Zuletzt bearbeitet:
Hi Julian!

Ich würde es etwa so machen:
Code:
head -`expr \`wc -l alteDatei | awk '{print $1}'\` - 1` alteDatei && echo `tail -1 alteDatei`Zeichenfolge

Oder gleich wegschreiben:
Code:
( head -`expr \`wc -l alteDatei | awk '{print $1}'\` - 1` alteDatei && echo `tail -1 alteDatei`Zeichenfolge ) > neueDatei

Grüße
Ben (aka Obi-Wan)
--
"These aren't the droids you're looking for."
 
Falls am Ende der letzten Zeile kein Zeilenumbruch rumlungert und auch keiner hin soll, tut es: "echo -n NeueZeichenfolge >> Dateiname" ... also die neue Zeichenfolge einfach hinten dran an die Datei hängen.

Steht am Ende der letzten Zeile in der Datei ein Zeilenumbruch (das wird im Passwortfile so sein), hilft sed:
sed -i -e '$ s/$/NeueZeichenfolge/' Dateiname
 
Um die Login Shell im nachhinein zu ändern, gibt es übrigens ein eigenes Kommando: chsh. Das sollte man auf jeden Fall irgendwelchen Skriptbasteleien vorziehen, das macht nämlich noch einiges mehr als ein Feld in der /etc/passwd zu ändern.
 
Zurück
Oben