In der Befehlszeile habe ich Folgendes ausgeführt:
$ text="name with space"
$ echo $text
name with space
Ich versuche tr -d ' '
die Leerzeichen zu entfernen und habe folgendes Ergebnis:
namewithspace
Ich habe ein paar Dinge ausprobiert wie:
text=echo $text | tr -d ' '
Bis jetzt kein Glück, hoffentlich können Sie wundervollen Leuten helfen!
shell
command-line
tr
user3347022
quelle
quelle
Sie brauchen überhaupt keinen
echo
Befehl, sondern verwenden stattdessen Here String :Nur aus Neugier überprüfte ich, wie viel Zeit eine so einfache Aufgabe für verschiedene Werkzeuge benötigt. Hier sind die Ergebnisse vom langsamsten zum schnellsten sortiert:
Der reine Shell-Betrieb ist definitiv der schnellste, was nicht verwunderlich ist, aber was wirklich beeindruckt, dass er über 100-mal schneller ist als der langsamste Befehl!
quelle
Ändern Sie einfach Ihre Textvariable wie folgt.
Wenn wir jedoch Steuerzeichen haben, kann dies zu Fehlern führen. Nach dem Vorschlag von Kasperd könnten wir also doppelte Anführungszeichen verwenden. So,
wird eine bessere Version sein.
quelle
$text
Steuerzeichen enthalten sind, die von der Shell interpretiert werden.text="$(echo "$text" | tr -d ' ')"
quelle
Ein Sonderfall, wenn Sie eine Variable mit einer Nummer benötigen:
Sch:
ksh:
quelle