Я сделал следующее в командной строке:
$ text="name with space"
$ echo $text
name with space
Я пытаюсь использовать tr -d ' '
для удаления пробелов и в результате:
namewithspace
Я пробовал несколько вещей, как:
text=echo $text | tr -d ' '
Пока не повезло, надеюсь, вы, замечательный народ, можете помочь!
shell
command-line
tr
user3347022
источник
источник
Вам вообще не нужна
echo
команда, просто используйте Here String :Просто для любопытства я проверил, сколько времени занимает такая тривиальная задача для разных инструментов. Вот результаты, отсортированные от самого медленного до самого быстрого:
Операция с чистой оболочкой определенно самая быстрая, что неудивительно, но что действительно впечатляет, это то, что она работает в 100 раз быстрее самой медленной команды!
источник
Просто измените текстовую переменную, как показано ниже.
Однако, если у нас есть управляющие символы, это может сломаться. Итак, согласно предложению Касперда, мы могли бы заключить в него двойные кавычки. Так,
будет лучшей версией.
источник
$text
содержит управляющие символы, которые интерпретируются оболочкой. Лучше поместите туда двойные кавычки:text="$(echo "$text" | tr -d ' ')"
источник
особый случай, когда вам нужна переменная с числом:
ш:
КШ:
источник