我的变量中有几个参数。我想用单引号将每个变量替换,并用逗号分隔。
var_list=emp location branch.
我希望输出如下:
var_list='emp', 'location', 'branch'
答案 0 :(得分:1)
delimited="'${var_list//[[:space:]]/"','"}'"
如果字符串中有多个空格,请使用扩展的globbing:
shopt -s extglob
delimited="'${var_list//+([[:space:]])/"','"}'"
words=($var_list) # create array from string, using word splitting
printf -v delimited ",'%s'" "${words[@]}" # yields ",'one','two',..."
delimited=${delimited:1} # remove the leading ','
delim=''
for word in $var_list; do # rely on word splitting by shell
delimited="$delimited$delim'$word'"
delim=", "
done
相关:
答案 1 :(得分:0)
谢谢@codeforester 我尝试了第一种方法
delimited="'${var_list//[[:space:]]/"','"}'"
但它不起作用。我得到了
'word_1"', '"word_2"', '"word_3'
然后我修改为声明
delimited="'${var_list//[[:space:]]/','}'"
它工作正常。
'word_1', 'word_2', 'word_3'