GNU/Linux >> Znalost Linux >  >> Linux

Jak napsat víceřádkový řetězec pomocí Bash s proměnnými?

#!/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

tohle dělá, co chceš.


Syntaxe (<<< ) a použitý příkaz (echo ) je špatně.

Správně by bylo:

#!/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

Tato konstrukce je označována jako dokument zde a lze ji nalézt na manuálových stránkách Bash pod man --pager='less -p "\s*Here Documents"' bash .


Linux
  1. Jak rozdělit řetězec ve skriptu Bash

  2. Jak zapíšu stderr do souboru při použití tee s potrubím?

  3. Jak v Bash přidám řetězec za každý řádek v souboru?

  1. Jak zapsat celé číslo do binárního souboru pomocí Bash?

  2. Jak nahradit řetězec ve více souborech v příkazovém řádku linuxu

  3. Jak spustím více příkazů na pozadí v bash na jednom řádku?

  1. jak omezit délku řetězce přítomného v řádku pomocí linuxu

  2. pomocí náhodného vygenerování náhodného řetězce v bash

  3. Bash - Jak tisknout víceřádkové řetězce (s '\n') pomocí printf