shell中sed无法解析变量值

想向文件中插入一行文案 但是总是解析传入的变量错误,几种实测的结果如下
sed -i "/^dependencies *{$/a\${junitVersion}" $gradleFolder --->结果: ${junitVersion}

sed -i "/^dependencies *{$/a\/${junitVersion}/" $gradleFolder --->结果: / testCompile 'junit:junit:4.12'/

sed -i "/^dependencies *{$/a\//${junitVersion}//" $gradleFolder --->结果: // testCompile 'junit:junit:4.12'//

由第2、3看 变量的值是正确的,第一种就不说了 ,第2、3方式为什么会多出来 / 斜杠啊???

5个回答

sed -i '/^dependencies *{$/a\'${junitVersion}'' $gradleFolder

试着把传入的变量写空试一下

有没有发现你变量带的$和sed匹配那里的$其实是有歧义的 到底是代表变量呢还是代表匹配到尾部呢? 所以sed后面基本都是用单引号做强引用而不是用双引号

echo $myip

echo ${myip}

可以尝试把传入的变量写空哦

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!