text in leere variable mit bash script

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
OldGod78
Beiträge: 190
Registriert: 20.04.2016 20:59:51
Kontaktdaten:

text in leere variable mit bash script

Beitrag von OldGod78 » 05.02.2017 20:23:06

wenn ich eine leere Datei habe und da text rein soll , wieso geht das nicht ?

Code: Alles auswählen

sed '$aNeue Zeile' test.txt

erhalte das dann einfach in der shell und wird nicht in der Datei geändert ...

Code: Alles auswählen

root@root:/home/test# sed '$aNeue Zeile' test.txt
fsf
Neue Zeile
root@root:/home/test#

TomL

Re: text in leere variable mit bash script

Beitrag von TomL » 05.02.2017 20:30:04

Code: Alles auswählen

echo '$aNeue Zeile' >test.txt

tobo
Beiträge: 1964
Registriert: 10.12.2008 10:51:41

Re: text in leere variable mit bash script

Beitrag von tobo » 05.02.2017 20:37:36

Vielleicht ist eher sowas gewünscht:

Code: Alles auswählen

echo "${a}Neue Zeile" >> test.txt
Wobei im Eingangspost weder Ein- und Ausgabe der Shell korrespondieren, noch gestellte Frage und Thread-Thema!?

TomL

Re: text in leere variable mit bash script

Beitrag von TomL » 05.02.2017 20:40:58

tobo hat geschrieben:

Code: Alles auswählen

echo "${a}Neue Zeile" >> test.txt
Das funktioniert nur dann, wenn sein Beispiel tatsächlich ein Konstrukt aus Variable und Konstante ist. Ich habe ihn wörtlich genommen und gehe davon aus, dass das eine Variable ist. Und ob >> erwünscht ist... ?... woraus schließst Du das? :roll:

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: text in leere variable mit bash script

Beitrag von Meillo » 05.02.2017 20:56:31

TomL hat geschrieben:Und ob >> erwünscht ist... ?... woraus schließst Du das? :roll:
Weil die Syntax

Code: Alles auswählen

$a
irgendwas
.
bei ed(1) fuer: ``Gehe zur letzten Zeile, fuege danach folgende Zeilen ein, ...'' steht.

Die Shell-Append-Redirection (>>) ist sicher eher das was du suchst, aber falls du es mit sed machen willst, dann so:

Code: Alles auswählen

sed '$a\
Neue Zeile' test.txt
(Die i-, a- und c-Syntax ist in sed(1) etwas unhandlich. Die wird nur dann richtig verstaendlich, wenn man ed(1) kennt.)
Zuletzt geändert von Meillo am 05.02.2017 21:01:59, insgesamt 2-mal geändert.
Grund: Korrekturen
Use ed once in a while!

tobo
Beiträge: 1964
Registriert: 10.12.2008 10:51:41

Re: text in leere variable mit bash script

Beitrag von tobo » 05.02.2017 20:56:57

TomL hat geschrieben:Das funktioniert nur dann, wenn sein Beispiel tatsächlich ein Konstrukt aus Variable und Konstante ist.
Oben ist von Variable die Rede!?
Und ob >> erwünscht ist... ?... woraus schließst Du das?
Rein formell könnte man das daraus schließen:
wenn ich eine leere Datei habe und da text rein soll
Aber ja, das ist von mir nicht s anderes als Annahme!?

Benutzeravatar
Meillo
Moderator
Beiträge: 8782
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: text in leere variable mit bash script

Beitrag von Meillo » 05.02.2017 20:58:24

OldGod78 hat geschrieben: erhalte das dann einfach in der shell und wird nicht in der Datei geändert ...
Natuerlich, weil das sed(1) immer so macht ... ausser man verwendet -i.

Manpages lesen hilft ungemein. ;-)
Use ed once in a while!

tobo
Beiträge: 1964
Registriert: 10.12.2008 10:51:41

Re: text in leere variable mit bash script

Beitrag von tobo » 05.02.2017 21:23:24

Ja, dass wirklich sed gemeint ist, wenn da sed steht - muss man auch erstmal drauf kommen!?

Antworten