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

Shell脚本中如何使用变量值替换文件内指定字符串

问题根因

Shell 中单引号会原样输出包裹的所有内容,不会解析内部的变量、转义符等特殊语法,所以你命令里的${SLURM_ARRAY}没有被替换为实际的变量值,直接作为替换字符串写入了文件。

修复方法

将 sed 命令的单引号替换为双引号即可,双引号内的变量会被 Shell 正常解析展开:

sed -i "s/lvl/${SLURM_ARRAY}/" prm.prm

特殊场景适配

  • 如果你在 macOS 系统执行该命令,sed -i 要求显式指定备份文件的后缀,不需要备份的话可以写成:
    sed -i '' "s/lvl/${SLURM_ARRAY}/" prm.prm
    
  • 如果SLURM_ARRAY变量的值包含/字符,需要替换 sed 的分隔符避免语法冲突,比如换成#作为分隔符:
    sed -i "s#lvl#${SLURM_ARRAY}#" prm.prm
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 15:09:00