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

Shell中使用sed命令插入变量时如何避免额外添加双引号

问题根因

你当前的sed命令拼接逻辑错误,在变量外额外增加了会被识别为插入内容的双引号,才会导致插入结果外层多了双引号;如果直接去掉所有引号,变量内部的空格会被shell识别为参数分隔符,sed会误将变量内容识别为文件路径,就会触发找不到文件的报错。

解决方案

调整引号拼接规则即可,仅保留shell层面用于避免变量分词的双引号,不要把双引号传递给sed作为插入内容的一部分,修改后的脚本如下:

#!/bin/bash
var="test 'test:test:1.0'"
# 写法1:用双引号包裹整个sed表达式,变量直接展开即可
sudo sed -i "/dependencies {/a $var" test.txt

# 写法2:如果sed表达式内有大量shell元字符怕被误解析,用单引号拼接的版本
# sudo sed -i '/dependencies {/a '"$var" test.txt

修改后执行脚本,插入的内容就会是test 'test:test:1.0',不会携带外层多余双引号,也不会触发参数解析报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 04:45:04