Když to udělám
str="Hello Worldn===========n"
Dostávám n
také vytištěno. Jak potom mohu mít nové řádky?
Přijatá odpověď:
V bash
můžete použít syntaxi
str=$'Hello Worldn===========n'
Jednoduché uvozovky, kterým předchází $
je nová syntaxe, která umožňuje vkládat escape sekvence do řetězců.
Také printf
vestavěný umožňuje uložit výsledný výstup do proměnné
printf -v str 'Hello Worldn===========n'
Obě řešení nevyžadují subshell.
Pokud v následujícím textu potřebujete vytisknout řetězec, měli byste použít dvojité uvozovky, jako v následujícím příkladu:
echo "$str"
protože když vytisknete řetězec bez uvozovek, nový řádek se převede na mezery.
Jaká je dobrá mnemotechnická pomůcka pro Shell Double vs. Jednoduché uvozovky?
Linux – Jak nakonfigurovat soubor Syslog.conf, protokolovat zprávy Iptables do samostatného souboru?