我正在尝试为字符串添加引号。像这样:
stackoverflow => 'stackoverflow'
然后将此字符串附加到另一个由逗号'分隔的变量。喜欢:
$ {list}(在追加之前)=> ' stackexchange',...,'元'
$ {列表}'计算器' => ' stackexchange',...,'元''计算器'
我试图这样做:
if [ -z "$partition_list" ]
then
partition_list="'"${partition}"'"
else
partition_list=${partition_list}",'"${partition}"'"
fi
注意:$ partition是我尝试添加引号的变量。而$ partition_list是我试图将$ partition附加到的列表。
它没有用。我得到这样的字符串:' \'' 10099' \''
修改
我通过这句话获得了分区的价值:
partition=`echo $f | awk -F '=' '{print $2}'`
我们是否有办法添加' sed'到这个语句并将引号添加到$ partition?
非常感谢任何帮助。
谢谢。
答案 0 :(得分:1)
这是怎么回事?
partition_list="${partition_list:+$partition_list,}'$partition'"
如果if
不为空(使用$partition_list
),则:+
构造将替换为包含逗号的参数扩展,并且双引号内的单引号不会停止变量从扩展。
Plus ... 总是引用您引用的变量。你对foo=$bar",'"$baz"'"
的看法有可能是灾难性的,因为变量可能会通过通配扩展。
因此,如果您想要使用if
执行此操作,则看起来更像是:
if [ -z "$partition_list" ]; then
partition_list="'${partition}'"
else
partition_list="${partition_list},'${partition}'"
fi
答案 1 :(得分:-1)
怎么样: //编辑:更新处理空间。
list=('aa xx' 'bb')
res=()
for ix in ${!list[*]};do
res+=(\'${list[$ix]}\')
done
res+=("'stackoverflow'")
echo ${res[*]}