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