2016-07-28 5 views

Antwort

7

Ich glaube, das tut, was Sie wollen:

$ echo "${my_var//$'\n'/\\n}" 
foo\nbar\nbaz 

Es gibt zwei wichtige Dinge zu beachten:

  1. Zitat Ihre Variablen! Ihre Erweiterung wurde nicht ersetzt, aber das Leerzeichen in der Variable wurde durch Wortteilung zerquetscht. echo druckt jedes seiner Argumente getrennt durch ein einzelnes Leerzeichen.
  2. Verwenden Sie $'\n' für eine C-Stil-Zeichenfolge, um ein Newline-Zeichen in der Suche Teil der Erweiterung zu erhalten.
1

Dies funktioniert:

$ echo "${my_var//  
/\\n}" 
foo\nbar\nbaz 

Relevante Befund: eine wörtliche Newline in einem Befehl irgendwo einzufügen, ohne sie laufen Sie Ctrl-vStrg-Enter drücken.

Verwandte Themen