0

在此之前,我发现了相同的问题,但没有一个问题对我有用。

我需要制作一个临时的 .json 文件(它必须是 json,因为稍后我将在脚本中使用 jq)。

根据这个问题的答案,我认为它将是以下内容,但他们正在分别创建名为.json和的文件XXXXXXXX.json

STACKS=$(mktemp .json)
STACKS=$(mktemp XXXXXXXX.json)

这将需要在 mac OS 和 linux 机器上运行。我无法为该文件指定路径,因为它将在本地和由 Jenkins 运行,它们具有不同的文件结构。什么是正确的语法?

4

1 回答 1

3

如果您使用的是 openBSD mktemp,您可以

STACKS="$(mktemp XXXXXX).json"

然后编写一个trap,以便在脚本完成时删除 tmps:

function cleanup {
    if [ -f "$STACKS" ] && [[ "$STACKS" =~ ".json"$ ]]; then
        rm -f "$STACKS"
    fi
}
trap cleanup EXIT

所以当脚本完成时(无论如何)它会尝试删除$STACKS它是否是一个文件并且它是否以.json(为了额外的安全)结束。

于 2017-04-06T15:14:26.943 回答