shell中对返回结果是否为空的判断
前提:查询weblogic进程是否存在(假设只存在一个weblogic)A=`ps-ef|grepweblogic|grep-vgrep|awk'{print$2}'`[...
前提:查询weblogic进程是否存在(假设只存在一个weblogic)
A=`ps -ef|grep weblogic|grep -v grep|awk '{print $2}'`
[ -n $A ]
echo $?
[ -z $A ]
echo $?
问题:当weblogic进程存在时,分别返回0和1,但是当进程不存在时分别返回0和0,因为-n是判断非空串,当进程不存在时返回A为空,那么此时[ -n $A ]执行结果为什么仍是0而不是1呢?求解!!! 展开
A=`ps -ef|grep weblogic|grep -v grep|awk '{print $2}'`
[ -n $A ]
echo $?
[ -z $A ]
echo $?
问题:当weblogic进程存在时,分别返回0和1,但是当进程不存在时分别返回0和0,因为-n是判断非空串,当进程不存在时返回A为空,那么此时[ -n $A ]执行结果为什么仍是0而不是1呢?求解!!! 展开
展开全部
[ -n $A ] 改为 [ -n "$A" ]
-n是对字符串是否为空进行判断,后面必须是字符串形式,请加双引号,否则可能出错。
-n是对字符串是否为空进行判断,后面必须是字符串形式,请加双引号,否则可能出错。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询