我正在 Bash 脚本中生成 sed 表达式,但遇到了以下问题。
我想在每次出现 abc 时前面添加一个空格。
此命令按预期工作
echo abc | sed -e "s/abc/ def/"
输出是“明确”“不带引号
而这个命令
Q='-e "s/abc/ def/"'
echo abc | sed $Q
输出sed:-e 表达式 #1,字符 1:未知命令:`"'
在 Bash 脚本之外,一切正常。
我尝试了所有可能的引号、转义字符的方法,但还是没能解决。有人能帮帮我吗?
答案1
使用多个选项,而不是单个选项:
Q=( -e "s/abc/ def/" )
echo abc | sed "${Q[@]}"