为了账号安全,请及时绑定邮箱和手机立即绑定

$$在外壳中是什么意思?

$$在外壳中是什么意思?

我曾经读过一种在外壳中为临时文件获取唯一文件名的方法是使用双美元符号($$)。这确实会产生不时变化的数字...但是,如果您反复调用它,它将返回相同的数字。(解决方案是只使用时间。)我很好奇到底$$是什么,为什么会建议将其作为生成唯一文件名的一种方式。
查看完整描述

3 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

$$是bash中的进程ID(PID)。使用$$是个坏主意,因为它通常会创建竞争条件,并允许攻击者破坏您的shell脚本。见,例如,所有这些人谁创建不安全的临时文件,并不得不发布安全公告。


而是使用mktemp。mktemp的Linux手册页非常棒。以下是其中的一些示例代码:


tempfoo=`basename $0`

TMPFILE=`mktemp -t ${tempfoo}` || exit 1

echo "program output" >> $TMPFILE


查看完整回答
反对 回复 2019-10-26
  • 3 回答
  • 0 关注
  • 625 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信