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/

10-11 16:42