参数
-d, —directory 用于创建目录而非文件定 -u, —dry-run 不要创造任何东西;仅仅打印一个名字 -q, —quiet 忽略错误
-t 在/tmp目录下创建临时文件 (默认在tmp下创建 但是指定格式的时候是创建在当前目录下的 )
指定随机格式
test]# mktemp
/tmp/tmp.QEEGvimfUL
test]# ll /tmp/tmp.QEEGvimfUL
-rw------- 1 root root 0 Jan 19 11:25 /tmp/tmp.QEEGvimfUL
test]#
test]# mktemp -d
/tmp/tmp.W62lnUwJqU
test]# ll -d /tmp/tmp.W62lnUwJqU
drwx------ 2 root root 6 Jan 19 11:22 /tmp/tmp.W62lnUwJqU
test]# mktemp -u
/tmp/tmp.jPXByz25pe
test]# ll /tmp/tmp.jPXByz25pe
ls: cannot access /tmp/tmp.jPXByz25pe: No such file or directory
test]# mktemp tep.XXXX
tep.1T0l
test]# ls
tep.1T0l
test]# mktemp -t tep.XXXX
/tmp/tep.EJYL
test]# ll /tmp/tep.EJYL
-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应该写在哪里 行首吗?