如何将发布管道变量设置为 null

时间:2021-01-28 17:24:58

标签: azure-devops

我的应用程序中有一个 .json 配置文件。在 Azure DevOps 中管理发布时使用变量选项卡,我可以替换该 .json 文件中的值。但是,我无法使用此方法将值显式设置为 null 而不是字符串“null”。有没有办法做到这一点?我需要生成的 json 看起来像

"setting": null

代替

"setting": "null"

1 个答案:

答案 0 :(得分:0)

如果您在变量选项卡中设置了变量但未指定其值,则其值为空。 enter image description here

但是,在脚本中引用这个变量时,会被解析为空字符串而不是空值。

例如,我们有一个包含以下内容的 test.json。

    "setting": "debug",
    "environment": "dev"
}

如果我们使用包含以下内容的命令行任务。

echo Hello world

cat $(System.DefaultWorkingDirectory)/_tt/test.json

echo ""
echo "now replace: "

sed "s/\"debug\"/$testvar/g" $(System.DefaultWorkingDirectory)/_tt/test.json

输出结果如下。 enter image description here

如果你想设置为null,直接使用下面内容的null值即可。

sed 's/\"debug\"/null/g' $(System.DefaultWorkingDirectory)/_tt/test.json

输出结果如下。 enter image description here

使用sed 's/\"debug\"/null/g' $(System.DefaultWorkingDirectory)/_tt/test.json >$(System.DefaultWorkingDirectory)/_tt/new_test.json 会将输出写入 new_test.json 文件。

请参阅:How to Use sed to Find and Replace String in Files 了解详情。