sed: -e expression #1 – 永夜 https://www.shuijingwanwq.com 没有不值得去解决的问题,也没有不值得去学习的技术! Sat, 16 May 2026 03:49:56 +0000 zh-Hans hourly 1 https://wordpress.org/?v=7.0 在 Rancher 容器升级时,执行 SHELL 脚本报错:sed: -e expression #1, char 37: unknown option to `s’ 的分析与解决 https://www.shuijingwanwq.com/2019/01/24/3136/ https://www.shuijingwanwq.com/2019/01/24/3136/#respond Thu, 24 Jan 2019 05:43:27 +0000 http://www.shuijingwanwq.com/?p=3136 浏览量: 239 1、在 Rancher 容器升级时,执行 SHELL 脚本报错:sed: -e expression #1, char 37: unknown option to `s’,如图1
在 Rancher 容器升级时,执行 SHELL 脚本报错:sed: -e expression #1, char 37: unknown option to `s'

图1

2、在 环境变量 CMCP_API_CFG_REDIS_PASSWORD 的值为 q5dHP@xCBUUJY^L ,进而导致升级失败,将值修改为 q5dHP@xCBUUJYL ,去除其中的 ^ 符号,再次升级,升级失败 3、将值修改为 q5dHPxCBUUJY^L ,去除其中的 @ 符号,再次升级,升级成功


sed -i "s@CMCP_API_CFG_REDIS_HOSTNAME@$CMCP_API_CFG_REDIS_HOSTNAME@g" /sobey/www/cmcp-api/.env;


4、在 环境变量 CMCP_API_CFG_REDIS_PASSWORD 的值为 q5dHP@xCBUUJY^L ,进而导致升级失败,最终决定不修改原值,修改 SHELL 文件,将 @ 替换为 #,升级成功


sed -i "s@CMCP_API_CFG_REDIS_HOSTNAME@$CMCP_API_CFG_REDIS_HOSTNAME@g" /sobey/www/cmcp-api/.env;




sed -i "s#CMCP_API_CFG_REDIS_HOSTNAME#$CMCP_API_CFG_REDIS_HOSTNAME#g" /sobey/www/cmcp-api/.env;


5、总结,在 SHELL 中,数据的搜寻并替换,默认为:sed ‘s/要被取代的字串/新的字串/g’,但是其中 / 可以使用其他字符串替换,以避免冲突]]>
https://www.shuijingwanwq.com/2019/01/24/3136/feed/ 0