gpt4 book ai didi

linux - 在 shell 脚本中使用 sed 命令

转载 作者:太空宇宙 更新时间:2023-11-04 10:35:06 37 4
gpt4 key购买 nike

这是我的简单shell脚本

示例.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 语句中生成的命令,它正在运行。但是 第 5 行,在 shell 脚本中不起作用

最佳答案

您需要使用一组引号,而不是两个,并且由于您希望扩展 $weburl 变量,因此需要使用双引号:

sed "s/^\(ServerName\)$/\1 $weburl/" "$CONFLOC"

只要 $weburl 不包含任何斜杠就可以了。如果是,则需要使用不同于 / 的字符,例如 % 来分隔替换命令的各个部分:

sed "s%^\(ServerName\)$%\1 $weburl%" "$CONFLOC"

关于linux - 在 shell 脚本中使用 sed 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37983609/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com