638 Stimmen

"echo -n" gibt "-n" aus

Ich habe ein Problem mit echo in meinem Skript:

echo -n "Some string..."

druckt

-n Some string...

und springt in die nächste Zeile. In der Konsole funktioniert es korrekt ohne Zeilenumbruch:

Some string...

3voto

Nur für die beliebteste Linux-Distribution , Ubuntu und sein Bash:

  1. Prüfen Sie, welche Shell Sie verwenden. Meistens funktioniert die folgende, ansonsten siehe dies :

    echo $0

  2. Wenn oben gedruckt wird bash dann funktioniert das Folgende:

    printf "hello with no new line printed at end"

    O

    echo -n "hello with no new line printed at end"

2voto

rɑːdʒɑ Punkte 4805

Ich glaube, im Moment sieht Ihre Ausgabe wie folgt aus

~ echo -e "String1\nString2"
String1
String2

Sie können verwenden xargs um mehrzeilige Standardausgaben in dieselbe Zeile zu bekommen.

 ~ echo -e "String1\nString2" | xargs
String1 String2

 ~

2voto

Riccardo La Marca Punkte 649
enable -n echo
echo -n "Some string..."

1voto

Daemon42 Punkte 193

なお /usr/bin/echo y /bin/echo sur AIX stützen keine Argumente, also auch nicht -n noch -e funktionieren, wenn Sie sh oder KornShell ( ksh ) Muscheln.

_C-Muschel y [Bash](https://en.wikipedia.org/wiki/Bash%28Unix_shell%29) haben ihre eigenen eingebauten echo das unterstützt -n .
Dies ist wichtig, da viele Shell-Skripte explizit die sh oder KornShell.

AIX verfügt über /usr/bin/printf wie in einigen früheren Antworten vorgeschlagen,

$ printf "whatever"

ist gleichbedeutend mit echo -n "whatever" donde -n wird unterstützt.

0voto

Amit Singh Punkte 1

Wenn Sie Ihr Shell-Skript schreiben, verwenden Sie immer #!/usr/bin/env bash als erste Zeile.

Diese Shell lässt keine Escape-Sequenzen aus oder manipuliert sie.

Beispiel:

echo "This is first \\n line"

druckt

This is first \n line.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X