Vraag Echo newline in Bash-afdrukken letterlijk \ n


In Bash, probeerde dit:

echo -e "hello\nworld"

Maar er wordt alleen een nieuwe regel afgedrukt \n. Hoe kan ik ervoor zorgen dat de newline wordt afgedrukt?

Ik gebruik Ubuntu 11.04.


1567
2017-12-11 21:01


oorsprong


antwoorden:


Je zou kunnen gebruiken printf in plaats daarvan:

printf "hello\nworld\n"

printf heeft meer consistent gedrag dan echo. Het gedrag van echo varieert sterk tussen verschillende versies.


1934
2017-12-11 21:04



Weet je zeker dat je in bash zit? Werkt voor mij, alle drie manieren:

echo -e "Hello\nworld"
echo -e 'Hello\nworld'
echo Hello$'\n'world

1296
2017-12-11 21:04



echo $'hello\nworld'

prints

hello
world

$'' gebruik van strings ANSI C Quoting:

Woorden van de vorm $'draad' worden speciaal behandeld. Het woord breidt uit naar draad, met backslash-escaped tekens vervangen zoals gespecificeerd door de ANSI C-standaard.


422
2017-11-02 09:39



Dat zou je altijd kunnen doen echo "".

bijv.

echo "Hello"
echo ""
echo "World"

90
2018-02-28 22:14



In de onzekere kans dat iemand merkt dat hij zijn hoofd tegen de muur slaat en probeert uit te zoeken waarom het script van een collega geen nieuwe regels zal afdrukken, let hier op ->

#!/bin/bash
function GET_RECORDS()
{
   echo -e "starting\n the process";
}

echo $(GET_RECORDS);

Zoals in het bovenstaande, kan het feitelijk draaien van de methode zelf worden verpakt in een echo die elke echo overschrijdt die mogelijk in de methode zelf voorkomt. Vanzelfsprekend heb ik dit kort gedraineerd, het was niet zo gemakkelijk te herkennen!

Je kunt dan je kameraden op de hoogte stellen dat een betere manier om functies uit te voeren zou zijn zoals:

#!/bin/bash
function GET_RECORDS()
{
   echo -e "starting\n the process";
}

GET_RECORDS;

32
2017-08-08 20:15



Proberen

echo -e "hello\nworld"
hello
world

werkte voor mij in nano-editor.


20
2017-12-05 11:06



Dit werkt voor mij in raspbian,

echo -e "hello\\nworld"


17
2018-04-19 19:05



str='hello\nworld'
$ echo | sed "i$str"
hello
world

14
2017-11-23 11:10