Groovy sh命令不包括我的echo命令中的引号

时间:2017-04-09 11:31:28

标签: linux shell groovy escaping

我正在尝试在引号内将hostname写入文件。我在Groovy脚本中这样做。这是我的sh Groovy脚本。

sh "echo Add \"my-hostname\" \"$HOSTNAME\" >> /etc/test.conf"

/etc/test.conf的预期结果应为:

Add "my-hostname" "linux-base"

但是当我执行我的Groovy脚本时,结果是:

Add my-hostname linux-base

有人请用sh命令脚本帮助我。

1 个答案:

答案 0 :(得分:1)

两个解决方法:

  1. 使用单引号:

    sh 'echo Add \"my-hostname\" \"'"$HOSTNAME"'\" >> aa'
    
  2. 使用双重转义:

    sh "echo Add \\\"my-hostname\\\" \\\"$HOSTNAME\\\" >> aa"
    
  3. 我不熟悉groovy,你确定你的命令不需要sh -c吗?