将变量值添加到字符串中

时间:2016-11-19 22:22:46

标签: string bash variables special-characters

我想将一个变量值添加到用''引用的字符串内容,因为里面有特殊字符。 例如:

a=500
str='#Test
d-i partman-auto/expert_recipe string \
boot-root :: \
   $a 10000 1000000000 ext4 \
   $primary{ } $bootable{ } \
   method{ format } format{ } \
   use_filesystem{ } filesystem{ ext4 } \
   mountpoint{ / } \
.
'

不幸的是,我无法使用''内的$ a值进行操作。它的回报是$ a,相对于它的值= 500

2 个答案:

答案 0 :(得分:1)

你需要留下单引号的“内部” 关闭并重新打开单引号:

a=500
primary=one
bootable=two
str='#Test
d-i partman-auto/expert_recipe string \
boot-root :: \
   '"$a"' 10000 1000000000 ext4 \
   '"$primary"'{ } '"$bootable"'{ } \
   method{ format } format{ } \
   use_filesystem{ } filesystem{ ext4 } \
   mountpoint{ / } \
.
'
echo "$str"

答案 1 :(得分:0)

您的选择是:

插入所有$变量(使用") - 并转义您要保留的任何美元符号:

EXPAND_THIS=100
echo "
$EXPAND_THIS
\$DONT_EXPAND_THIS
"

或者插入 no $变量(使用') - 并在想要插入a时开始一个新的插值字符串变量:

echo '
'$EXPAND_THIS'
$DONT_EXPAND_THIS
'

在引号中包含您想要插入的变量,在某些情况下可能会提供安全性(虽然我目前无法想到一个例子):

echo 'blah
blah
'"$EXPAND_THIS"'
$DONT_EXPAND_THIS
'