首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mktemp在bash脚本中使用时失败

mktemp在bash脚本中使用时失败
EN

Stack Overflow用户
提问于 2013-11-24 16:12:56
回答 1查看 3.4K关注 0票数 4

在Mac中,直接在终端中使用mktemp没有问题,但是bash脚本中的相同命令失败了。我做错了什么?

直接

代码语言:javascript
复制
Air2:~ jk$ mktemp -t "$0"

/var/folders/dq/g6bjxff136515xqlntckj0hc0000gn/T/-bash.74Kw3y9E

脚本:

代码语言:javascript
复制
#!/bin/sh
mktemp -t "$0"

脚本运行:

代码语言:javascript
复制
Air2:~ jk$ ~/Desktop/Temp/junk.sh

mktemp: mkstemp failed on /var/folders/dq/g6bjxff136515xqlntckj0hc0000gn/T//Users/jk/Desktop/Temp/junk.sh.VrRRi9qE: No such file or directory
Air2:~ jk$ 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-24 16:16:17

您没有一个名为/var/folders/dq/g6bjxff136515xqlntckj0hc0000gn/T//Users/jk/Desktop/Temp/的目录。

注意,当您在bash脚本中使用$0时,它是~/Desktop/Temp/junk.sh,并且~也会被展开。因此,mktemp现在不是在当前目录中创建一个简单的临时文件,而是尝试在当前目录的4层目录中创建该文件。因为它不存在,所以命令失败。

来自mktemp的手册页

-t interpret TEMPLATE as a single file name component, relative to a directory: $TMPDIR, if set; else the directory specified via -p; else /tmp [deprecated]

从马的坐骑上拿的。-t的参数应该是单个文件名组件,而不是路径值。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20176741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档