我想将一个变量值添加到用''引用的字符串内容,因为里面有特殊字符。 例如:
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
答案 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
'