这是我简单的shell脚本
sample.sh
LOCALCONFIGDIR="Install"
CONFLOC="$LOCALCONFIGDIR/server.conf"
echo "Enter Web Url:"
read weburl
echo "sed 's/^\(ServerName\)$/\1 "$weburl"/' "$CONFLOC
sed "'s/^\(ServerName\)$/\1 "$weburl"/' "$CONFLOC
当我运行此代码时,我在echo命令中得到如下结果。
sed 's/^\(ServerName\)$/\1 www.weburl.com/' Install/server.conf
但是当在下一行执行sed命令时,它会显示以下错误。
sed: -e expression #1, char 1: unknown command: `''
我在终端屏幕上尝试了echo语句中生成的命令,它正在工作。但是Line number 5
,没有使用shell脚本
答案 0 :(得分:1)
您需要使用一组引号,而不是两组引号,并且由于您希望扩展$weburl
变量,因此需要使用双引号:
sed "s/^\(ServerName\)$/\1 $weburl/" "$CONFLOC"
只要$weburl
不包含任何斜杠,即可。如果是,则需要使用与/
不同的字符(例如%
)来分隔替换命令的各个部分:
sed "s%^\(ServerName\)$%\1 $weburl%" "$CONFLOC"