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

时间:2015-04-22 05:55:53

标签: bash sed ubuntu-12.04

我正在使用" 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]}

1 个答案:

答案 0 :(得分:1)

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

进行测试
echo "File gg=${gg}"
在你的sed命令之前

当您添加第set -x行时,您会看到原始和新变量都未被替换。由单引号引起的,你必须结束单引号,用双引号给出var并再次以单引号开头。两种变量的方法。
sed行将成为

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

可选你可以在vars周围放置花括号:

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