带扩展名的mktemp没有指定文件路径
问题描述:
这样做的前提是我找到了相同的问题,但是他们都没有为我工作的答案。带扩展名的mktemp没有指定文件路径
我需要制作一个临时.json文件(它需要是json,因为我将在稍后的脚本中使用jq)。
我基础上,答案this question,这将是如下的思考,但他们创造分别命名为.json
和XXXXXXXX.json
文件。
STACKS=$(mktemp .json)
STACKS=$(mktemp XXXXXXXX.json)
这将需要在mac OS和Linux机器上运行。 我无法指定文件的路径,因为它将在本地和由詹金斯运行,它们具有不一致的文件结构。什么是适当的语法?
答
如果你正在使用的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
结尾(为了额外的安全性)。
我得到以下; 'mktemp:非法选项 - - 用法:mktemp [-d] [-q] [-t前缀] [-u]模板... mktemp [-d] [-q] [-u] -t前缀' – Alex
你在用什么外壳?你是积极的吗?另外,mktemp --version是什么意思? – odradek
是bash(刚刚用'echo $ 0'确认),而mktemp --version给我同样的错误,'illegal option - -'等 – Alex