参数

-d, —directory 用于创建目录而非文件定 -u, —dry-run 不要创造任何东西;仅仅打印一个名字 -q, —quiet 忽略错误
-t 在/tmp目录下创建临时文件 (默认在tmp下创建 但是指定格式的时候是创建在当前目录下的 )

指定随机格式

  1. test]# mktemp
  2. /tmp/tmp.QEEGvimfUL
  3. test]# ll /tmp/tmp.QEEGvimfUL
  4. -rw------- 1 root root 0 Jan 19 11:25 /tmp/tmp.QEEGvimfUL
  5. test]#
  6. test]# mktemp -d
  7. /tmp/tmp.W62lnUwJqU
  8. test]# ll -d /tmp/tmp.W62lnUwJqU
  9. drwx------ 2 root root 6 Jan 19 11:22 /tmp/tmp.W62lnUwJqU
  10. test]# mktemp -u
  11. /tmp/tmp.jPXByz25pe
  12. test]# ll /tmp/tmp.jPXByz25pe
  13. ls: cannot access /tmp/tmp.jPXByz25pe: No such file or directory
  14. test]# mktemp tep.XXXX
  15. tep.1T0l
  16. test]# ls
  17. tep.1T0l
  18. test]# mktemp -t tep.XXXX
  19. /tmp/tep.EJYL
  20. test]# ll /tmp/tep.EJYL
  21. -rw------- 1 root root 0 Jan 19 11:24 /tmp/tep.EJYL

在shell中使用mktemp
在shell脚本中 经常需要临时创建一个文件 并且在脚本结束之后清理掉这个文件 这个时候就可以使用mktemp

#!/bin/bash

trap 'rm -f "$TMPFILE"' EXIT

TMPFILE=$(mktemp) || exit 1
echo "Our temp file is $TMPFILE"

trap 命令

trap命令用来在 Bash 脚本中响应系统信号。
trap的命令格式如下。

$ trap [动作] [信号1] [信号2] ...

信号常用的有以下几个

HUP:编号1,脚本与所在的终端脱离联系。 INT:编号2,用户按下 Ctrl + C,意图让脚本中止运行。 QUIT:编号3,用户按下 Ctrl + 斜杠,意图退出脚本。 KILL:编号9,该信号用于杀死进程。 TERM:编号15,这是kill命令发出的默认信号。 EXIT:编号0,这不是系统信号,而是 Bash 脚本特有的信号,不管什么情况,只要退出脚本就会产生。

如果trap需要触发多条命令,可以封装一个 Bash 函数。

1. function egress {
2.   command1
3.   command2
4.   command3
5. }
6. 
7. trap egress EXIT

trap应该写在哪里 行首吗?