echo удаляет ведущие пробелы в переменной Bash

Новичок, чтобы стучать здесь. Я надеюсь добавить один пробел к переменной в bash, в настоящее время у меня есть следующее, что, похоже, не работает:

space=`printf '%1s' ' '`
mystr='hello'

mystr="$space$mystr"
echo $mystr

Поэтому вместо того, чтобы печатать «привет», я бы хотел, чтобы результатом было «привет», в начале которого есть дополнительный пробел. Как правильно это сделать? Спасибо.


person fittaoee    schedule 13.07.2017    source источник
comment
space=' ' достаточно; вам не нужно звонить printf.   -  person chepner    schedule 13.07.2017
comment
Это также BashPitfalls #14.   -  person Charles Duffy    schedule 14.07.2017


Ответы (1)


Начальный пробел удаляется оболочкой из-за разделения слов. Заключите свою переменную в двойные кавычки, чтобы отключить разделение слов:

echo "$mystr"

См. этот пост: я только что назначил переменную, но echo $variable показывает что-то другое

См. также эти документы: Разделение слов и Разделение полей

person codeforester    schedule 13.07.2017