使用以下bash脚本更新配置文件的键值
#!/bin/bash
ipaddr="192.168.0.1"
path="my/binary/file/path/version_op.bin"
sed -i "s/\("IP_ADDR" *= *\).*/\1$ipaddr/" config.txt
sed -i "s/\("PATH_N_FILENAME" *= *\).*/\1${path}/" config.txt
配置文件(config.txt)内容
IP_ADDR=192.168.0.1
PATH_N_FILENAME=NO_PATH
以上脚本仅适用于更新IP_ADDR
,但当我为sed
启用PATH_N_FILENAME
时,它会显示以下错误。
sed: -e expression #1, char 35: unknown option to `s'
可能会出现此问题,因为path
变量在路径中包含/
并且它使sed
处于混乱状态。但是什么问题仍然无法找到它。
有任何想法如何解决它?
答案 0 :(得分:0)
在sed命令部分使用单引号:
sed -i 's/\("IP_ADDR" *= *\).*/\1$ipaddr/' config.txt