line 3 我这样捕获错误正不正确啊?
我输出的 res 是空的
#!/bin/bash
echo `hexo clean`
res=`hexo generate|grep ERROR`
echo "======== ${res} ========"
if [ ! -n "$res"]
then
echo `hexo deploy git`
echo "1"
else
echo $res > log
echo "0"
fi
2-4是交给一个计划任务处理的
1
Havee 2016-04-21 16:44:31 +08:00
$? 来获取上一条命令的状态码
res=`command` if [ $? -eq 0 ]; then command else command fi 如果判断 grep 是否输出 error 字符串的话,可以用 -z 来判断 res=`command` if [ -z $res ]; then command else command fi |
2
EvanQu OP @Havee 刚重新检查了代码 发现 res=`hexo generate|grep ERROR` 这句话 捕获不到错误信息。。。
hexo generate 输出的 INFO 信息可以捕获 ERROR 信息捕获不了 不知道为什么 |
6
fangdingjun 2016-04-21 17:19:21 +08:00 1
hexo generate 2>&1|grep ERROR
复习 shell 基础中的关于 stdout, stderr 部分 |
7
ooxxcc 2016-04-21 17:25:56 +08:00
2>&1
楼上已经解释了 |
8
EvanQu OP @fangdingjun 谢谢 我没学过 shell 是一边 google 一遍写的 看来还是得先了解基础啊
|
9
Havee 2016-04-21 17:28:42 +08:00
那不如直接 hexo generate 2>/dev/null
接着$?捕获这条信息的状态码.... 但是没玩过 hexo ,不清楚 hexo 的错误输出信息是否含 ERROR |