我在通过七牛给的可执行文件进行推送文件到 cdn 的时候,发现总是命令行总是返回 1。
$ 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 变成正常的。
trap "echo 'EXIT 1'" SIGHUP
第二个字段可以随便写一段脚本,什么都不执行,可以留空。
网友评论