#!/bin/sh
arr=(
a
b
c
)
sed "s/abc/${arr[@]}/" file
sh -x this_script.sh显示错误结果:
+ arr=(a b c)
+ sed s/abc/a b c/ file
sed: -e expression #1, char 5: unterminated `s' command
它应该是:
+ sed 's/abc/a b c/' file
此脚本中已经有双引号,为什么需要声明一个变量才能使其工作:
x=${arr[@]}
sed "s/abc/$x/" file
答案 0 :(得分:2)
您可以使用${arr[*]}
代替${arr[@]}
将其视为单个字符串:
sed "s/abc/${arr[*]}/" <<< "abc"
a b c