Beim Laufen
echo abcd | wc -c
es kehrt zurück 5
.
Das Wort abcd
ist jedoch nur 4 Zeichen lang.
Wird echo
nach dem Wort ein Sonderzeichen gedruckt abcd
?
Und kann ich verhindern echo
, dass das gedruckt wird?
text-processing
echo
wc
user78050
quelle
quelle
printf
besser alsecho
?wc -c
wie viele Zeichen etwas enthält. es gibt nur an, wie viele Bytes es sind.Antworten:
echo
Neue Zeile (\n
) am Zeilenende ausgebenBei einigen
echo
Implementierungen können Sie Folgendes verwenden-n
:und test:
Bei einigen anderen benötigen Sie die
\c
Escape-Sequenz:Portabel verwenden
printf
:(Beachten Sie, dass
wc -c
Bytes und nicht Zeichen gezählt werden (obwohlabcd
sie im Allgemeinen gleichwertig sind).wc -m
Zum Zählen von Zeichen verwenden.)quelle
echo
Implementierungen (zumindest bei allen Unix-kompatiblen) nur um dieecho 'abcd\c'
Ausgabe gehtabcd
.echo -e 'abcd\c'
In Unix-kompatiblenecho
Implementierungen würde ausgegeben-e abcd
.Wenn Sie
echo
ohne die-n
Option ausführen, wird nach den Argumenten ein Zeilenumbruchzeichen geschrieben. Andernfalls wird bei der Eingabeecho foo
die nächste Shell-Eingabeaufforderung rechts von angezeigtfoo
. Sowc
zählt das Newline.quelle
Standardmäßig
echo
wird nach der Zeichenfolge ein Zeilenvorschubzeichen (\n
) ausgegeben. (Aus diesem Grund wird die Shell-Eingabeaufforderung in der nächsten Zeile anstelle der Zeile angezeigt, in der sieabcd
gedruckt wird.)Sie können versuchen , einen Zusatz -
-n
Parameter aufecho
die Hinter Newline - Zeichen zu deaktivieren.quelle