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.