So fügen Sie unter Linux Zeilen zum Dateiende hinzu


120

Ich möchte die folgenden 2 Zeilen hinzufügen ...

VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1600x1200"

bis zum Ende der Datei vncservers im Verzeichnis .... / etc / sysconfig /

Wie kann ich das machen?

Vielen Dank


2
Sie können vioder verwenden emacs. Wissen Sie, wie man diese benutzt? Ich versuche nicht, sarkastisch zu sein.

Antworten:


232

Der einfachste Weg, die Ausgabe des Echos um >> umzuleiten

echo 'VNCSERVERS="1:root"' >> /etc/sysconfig/configfile
echo 'VNCSERVERARGS[1]="-geometry 1600x1200"' >> /etc/sysconfig/configfile

3
Wie würden Sie aus Neugier Text an eine Datei anhängen, ohne eine neue Zeile zu erstellen?
Martin Hansen

11
Dies hängt von der zuletzt hinzugefügten Zeile ab, nicht von Ihrem aktuellen Befehl. Wenn Sie die Datei $ echo "foobar" >> ausführen, ist die neue Zeile bereits vorhanden. Wenn Sie die Datei $ echo -n "foobar" >> ausführen, wird die neue Zeile nicht an das Zeilenende angehängt, sodass Sie in dieselbe Zeile schreiben.
user897079

9
Dies funktioniert nicht, wenn in einer Sudo-Umgebung in eine Systemdatei geschrieben wird. Sie können nicht sudo >>. Ansonsten funktioniert es gut.
Dennis

4
Verwenden Sie den Befehl "sed" wie folgt: ---------- sed -i "$ a some text" somefile.txt --------- -i: Dateien an Ort und Stelle bearbeiten, $ Finde das Ende der Datei, a: append
Lunf

9
@ Tennis Das liegt an der Art und Weise, wie die Befehlszeile analysiert wird. 'sudo abc >> def' wird 'sudo abc' und dann '>> def' die Ausgabe. Um das gesamte 'abc >> def'-Bit zu sudo, müssen Sie Folgendes tun: sudo sh -c "echo' VNCSERVERS =" 1: root ">> / etc / sysconfig / configfile" (beachten Sie, dass die inneren doppelten Anführungszeichen müssen
maskiert
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.