Autoconf文档建议使用以下代码片段以实现可移植性:
# Create a temporary directory $tmp in $TMPDIR (default /tmp).
# Use mktemp if possible; otherwise fall back on mkdir,
# with $RANDOM to make collisions less likely.
: ${TMPDIR=/tmp}
{
tmp=`
(umask 077 && mktemp -d "$TMPDIR/fooXXXXXX") 2>/dev/null
` &&
test -n "$tmp" && test -d "$tmp"
} || {
tmp=$TMPDIR/foo$$-$RANDOM
(umask 077 && mkdir "$tmp")
} || exit $?
我不明白第一行:
为什么以
:
开头?为什么在此之后立即使用
TMPDIR
变量? 最佳答案
:$ {TMPDIR =/tmp}表示:
:是bash中的null命令,但是如果TMPDIR的内容为null,则shell将/tmp分配给TMPDIR变量
关于linux - 解释这个shell脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16306293/