Как назначить строку с несколькими пробелами переменной в bash?

Во-первых, это не похоже на этот вопрос Как отобразить строку с несколькими пробелами в bash «нетронутой»? [дубликат] , потому что в этом вопросе он просто хочет его распечатать, а я хочу присвоить его переменной и сохранить. Я пробовал это:

SPACE='  '
VAR="$VAR1${SPACE}$VAR2"

-1
13.04.2017, 15:36
3 ответа

Вам просто не хватает закрывающей двойной кавычки:

$ var1=Hello
$ SPACE='  '
$ VAR2=Wissam
$ VAR="$var1${SPACE}$VAR2"
$ echo "${VAR}"
Hello  Wissam

Обратите внимание, что имена переменных также чувствительны к регистру.

5
28.01.2020, 05:06

Вы также можете сделать это следующим образом:

$ v1="abc def"
$ v2="   "
$ v3="ghi jkl"
$ v4="$v1""$v2""$v3"
$ echo "$v4"
abc def   ghi jkl
1
28.01.2020, 05:06

Также, поскольку я не полностью согласен с первым ответь, вот как бы я это сделал

var1="Hello"
spaces=10  # a dynamic value
var2="Wissam"
printf "%s%$((${#var1} + spaces))s%s\n" "$var1" "$var2"
3
28.01.2020, 05:06

Теги

Похожие вопросы