如何将参数发送到 "sed" 的脚本?

how to send parameter to script for "sed"?

我在脚本中使用 "sed -i 's/original/new/g' $gg" 但是在终端时,当我写 ./test echo print 时使用参数,然后出现错误:

sed : no input files

这是我的尝试:

文件名:测试

#!/bin/bash
sed -i 's/$original/$new/g' $gg

和gg文件:

#!/bin/bash
ns="ns1.cyberciti.biz ns2.cyberciti.biz ns3.cyberciti.biz"
OIFS="$IFS"
IFS=' '
read -a dnsservers <<< "${ns}"
IFS="$OIFS"
echo ${dnsservers[1]}

当gg为文件名时,不要使用$gg而是gg。 当文件名存储在 var gg 中并导出 var 时,使用

进行测试
echo "File gg=${gg}"

在你的 sed 命令之前。

当您添加行 set -x 时,您会看到变量 original 和 new 没有被替换。这是由单引号引起的,您必须结束单引号,用双引号给 var 并再次以单引号开头。此方法适用于两个变量。
sed 行将变为

sed -i 's/'"$original"'/'"$new"'/g' gg

可选,您可以在变量周围放置大括号:

sed -i 's/'"${original}"'/'"${new}"'/g' gg