trap 命令

我在通过七牛给的可执行文件进行推送文件到 cdn 的时候,发现总是命令行总是返回 1。

1
2
3
4
5
6
$ qshell qupload2 --thread-count=5 --src-dir=.nuxt/dist/client --bucket=nalanda-cdn --overwrite=true

Uploading ...

$ echo $?
1

这里有个技巧 $? 可以输出上一条命令的返回值。

我这边有个逻辑是在打包成功之后,将 .nuxt/dist/client 文件夹下面的内容上传到七牛的 cdn,静态文件可以更快的下载运行,但是脚本每次都返回 1,导致下面的脚本无法执行,所以我想要截获 exit 1 这个事件,巧好让我看到了 linux 中另外一个命令 trap

trap 是可以捕获 exit 时候的信号,怪不得我以前碰到过执行 CTRL + C,后面还可以输出一段命令,提醒我退出成功;以及 skaffold dev 在我执行 CTRL + C,它会将已经部署的资源进行清理,原理都是劫持了信号量,可以做一些特殊的操作。

所以这里我就要劫持一下 qshell qupload2 执行成功的时候将 SIGHUP 变成正常的。

1
trap "echo 'EXIT 1'" SIGHUP

第二个字段可以随便写一段脚本,什么都不执行,可以留空。

参考文档

坚持原创技术分享,您的支持将鼓励我继续创作!