gpt4 book ai didi

linux - 如何使用斜杠修改配置参数值

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

我正在尝试从 .sh 文件修改配置文件 demo.cfg。我可以使用 sed 修改它,但问题是当值包含斜杠字符时。

为此我使用了这段代码:

read -r -p "(Default PATH: /my/default/path/): " response
case $response in
(*[![:blank:]]*) sed -i '/key_one/s/= ''.*/= '$response'/' demo.cfg; echo 'OK';;
(*) echo 'Using default path'
esac

这里是当变量 $response 有斜线时的错误:

sed:-e 表达式 #1,字符 20:“s”的未知选项

我可以转义这个变量以与 sed 函数一起使用吗?

这里是demo.cfg文件

[params]
key_one = 1
key_two = 9

最佳答案

尝试像这样传递response

${response//\//\\/}

这会将所有 / 替换为 \/。示例:

$ response=/my/path/to/target
$ echo ${response//\//\\/}
\/my\/path\/to\/target

您的案例陈述也有问题。您的 bash 脚本应如下所示:

#!/bin/bash

read -r -p "(Default PATH: /my/default/path/): " response
case $response in
*[![:blank:]]*) sed -i "/key_one/s/= .*/= ${response//\//\\/}/" demo.cfg
echo 'OK'
;;
*) echo 'Using default path'
;;
esac

关于linux - 如何使用斜杠修改配置参数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38185029/

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