shell判断犯的错误

回复 收藏
本帖最后由 疾风 于 2015-4-22 13:56 编辑

脚本如下:
#!/bin/bash
pid=`ps aux|grep getxmlpid.sh |grep -v grep|awk '{print $2}'`            //获取脚本的pid
if [ $pid -ne 0 ]; then                                           //如果pid不为0则输出0代表正常执行
echo 0
fi

该脚本实现获取一个shell的pid从而判断其有没有运行。
执行情况:"[ : -ne : unary operator expected"
分析:
大体逻辑上没有错,错在括号里的结果上。大家想一想,如果为空值,那么就成了 [ = 0] ,显然 [ 和 "OK" 不相等并且缺少了 [ 符号,所以报了这样的错误。如果变量值不为空,程序是正常的,所以这样的错误还是很隐蔽的。
改正:使用双括号[[ ]]
2015-04-21 22:33 举报
已邀请:
0

dongteng

赞同来自:

学习
0

gsy36559067

赞同来自:

学习

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: