You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shell脚本变量在SED中无法生效,求解决方案

问题分析与解决

你的代码存在两个关键问题导致变量替换版本失效:

  1. 变量名拼写错误:echo $firstring中的$firstring应为$firstString,错误的变量名会让echo输出空值,sed自然无法处理正确内容。
  2. 变量输出未加引号(可选优化):虽然当前字符串不含空格,但给echo的变量加上双引号能避免后续字符串包含特殊字符时出现意外分割。

修正后的完整代码如下:

firstString="/dev_app/Files/"
echo "$firstString"
String1="/dev_app/"
echo "$String1"
replacedstring="/dev/app/"
echo "$replacedstring"
echo "$firstString" | sed -e "s|${String1}|${replacedstring}|"

执行后会输出预期结果:

/dev_app/Files/
/dev_app/
/dev/app/
/dev/app/Files/

解释:

  • 修正拼写错误后,sed能接收到正确的源字符串进行替换。
  • 你使用|作为sed分隔符的写法是正确的,避免了变量中/与默认分隔符冲突的问题。

内容的提问来源于stack exchange,提问作者alangilbi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 08:57:05