zhkx123
2018-01-04 11:11
采纳率: 83.3%
浏览 2.3k
已采纳

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条回答 默认 最新

  • TomOwO 2018-01-04 11:21
    已采纳

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

    已采纳该答案
    打赏 评论
  • song_boo 2018-01-04 11:16

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

    打赏 评论
  • TomOwO 2018-01-04 11:28

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

    打赏 评论
  • CoderQinLe 2018-01-04 14:09

    echo $myip

    echo ${myip}

    打赏 评论
  • yinyin_wu 2018-01-05 00:51

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

    打赏 评论

相关推荐 更多相似问题