GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie schreibe ich eine mehrzeilige Zeichenfolge mit Bash mit Variablen?

#!/bin/bash
kernel="2.6.39";
distro="xyz";

cat > /etc/myconfig.conf << EOL
line 1, ${kernel}
line 2,
line 3, ${distro}
line 4
line ...
EOL

das macht was du willst.


Die Syntax (<<< ) und den verwendeten Befehl (echo ) ist falsch.

Richtig wäre:

#!/bin/bash

kernel="2.6.39"
distro="xyz"
cat >/etc/myconfig.conf <<EOL
line 1, ${kernel}
line 2, 
line 3, ${distro}
line 4 line
... 
EOL

cat /etc/myconfig.conf

Diese Konstruktion wird als Here-Dokument bezeichnet und ist in den Manpages von Bash unter man --pager='less -p "\s*Here Documents"' bash zu finden .


Linux
  1. Wie schreibe ich stderr in eine Datei, während ich tee mit einer Pipe verwende?

  2. Wie füge ich in Bash nach jeder Zeile in einer Datei eine Zeichenfolge hinzu?

  3. Wie liest man die vorletzte Zeile in einer Datei mit Bash?

  4. Wie fülle ich eine Datei mit FF mit dd auf?

  5. Wie führe ich einen Befehl mehrmals mit der Bash-Shell aus?

So kommentieren Sie in Bash

So schreiben Sie ein Bash-Skript mit Beispielen

So lesen Sie Dateien Zeile für Zeile in Bash

So lesen Sie eine Datei Zeile für Zeile in Bash

So prüfen Sie, ob eine Zeichenfolge in Bash eine Teilzeichenfolge enthält

Wie bearbeite ich vorherige Zeilen in einem mehrzeiligen Befehl in Bash?