📄 mktmp.bash
字号:
# mktmp.bash# Author: Noah Friedman <friedman@prep.ai.mit.edu># Created: 1993-02-03# Last modified: 1993-02-03# Public domain# Conversion to bash v2 syntax done by Chet Ramey# Commentary:# Code:#:docstring mktmp:# Usage: mktmp [template] {createp}## Generate a unique filename from TEMPLATE by appending a random number to# the end. ## If optional 2nd arg CREATEP is non-null, file will be created atomically# before returning. This is to avoid the race condition that in between# the time that the temporary name is returned and the caller uses it,# someone else creates the file. #:end docstring:###;;;autoloadfunction mktmp (){ local template="$1" local tmpfile="${template}${RANDOM}" local createp="$2" local noclobber_status case "$-" in *C*) noclobber_status=set;; esac if [ "${createp:+set}" = "set" ]; then # Version which creates file atomically through noclobber test. set -o noclobber (> "${tmpfile}") 2> /dev/null while [ $? -ne 0 ] ; do # Detect whether file really exists or creation lost because of # some other permissions problem. If the latter, we don't want # to loop forever. if [ ! -e "${tmpfile}" ]; then # Trying to create file again creates stderr message. echo -n "mktmp: " 1>&2 > "${tmpfile}" return 1 fi tmpfile="${template}${RANDOM}" (> "${tmpfile}") 2> /dev/null done test "${noclobber_status}" != "set" && set +o noclobber else # Doesn't create file, so it introduces race condition for caller. while [ -e "${tmpfile}" ]; do tmpfile="${template}${RANDOM}" done fi echo "${tmpfile}"}provide mktmp# mktmp.bash ends here
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -