#!/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
最佳答案 您可以使用${arr [*]}代替${arr [@]}将其视为单个字符串:
sed "s/abc/${arr[*]}/" <<< "abc"
a b c