标题: linux下shell的if语句如何写?
polosky
LU幼天使
Rank: 2



UID 12095
精华 0
积分 35
帖子 70
活跃指数 11
LU金币 2038 个
LU金条 0 个
阅读权限 20
注册 2004-2-17
 
发表于 2006-4-14 18:12  资料  个人空间  短消息  加为好友 
linux下shell的if语句如何写?

在linux的bash环境下 执行如下脚本do.sh
while (true)
do
PID="`ps -ef | grep aaa|grep -v 'grep'   | awk '{print $2}'`"
      if  $PID > 0
      then
         sleep 300
      else
         date >>do.log
         echo aaa >>do.log
      fi
done
报错如下:
./do.sh: line 4: 21474: command not found
将if 后加了圆括号 、把>换成 -gt 都试了,仍然报错,搞不懂了,指点一下吧,谢了。

顶部
大漠孤星
管理员
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20


LU爱心使者  
UID 257
精华 24
积分 3097
帖子 4279
活跃指数 570
LU金币 2934 个
LU金条 422 个
阅读权限 255
注册 2003-9-30

用支付宝求购
 
发表于 2006-4-17 13:01  资料  个人空间  短消息  加为好友  添加 大漠孤星 为MSN好友 通过MSN和 大漠孤星 交谈 QQ
if [ a -gt 0 ] 注意在条件两边加上空格
then
else
fi

你要注意$PID的值出来是不是1 2 3 4 之类的,如果是,还要改你的PID="`ps -ef | grep aaa|grep -v 'grep'   | awk '{print $2}'`"





顶部
polosky
LU幼天使
Rank: 2



UID 12095
精华 0
积分 35
帖子 70
活跃指数 11
LU金币 2038 个
LU金条 0 个
阅读权限 20
注册 2004-2-17
 
发表于 2006-4-17 14:29  资料  个人空间  短消息  加为好友 
顺便问一下,PID="`ps -ef | grep aaa|grep -v 'grep'   | awk '{print $2}'`"的结果有很多行,只取第一行怎么写呢?

顶部
大漠孤星
管理员
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20


LU爱心使者  
UID 257
精华 24
积分 3097
帖子 4279
活跃指数 570
LU金币 2934 个
LU金条 422 个
阅读权限 255
注册 2003-9-30

用支付宝求购
 
发表于 2006-4-17 15:07  资料  个人空间  短消息  加为好友  添加 大漠孤星 为MSN好友 通过MSN和 大漠孤星 交谈 QQ
ps -ef | grep aaa|grep -v 'grep'   | awk '{print $2}'|head -1





顶部
polosky
LU幼天使
Rank: 2



UID 12095
精华 0
积分 35
帖子 70
活跃指数 11
LU金币 2038 个
LU金条 0 个
阅读权限 20
注册 2004-2-17
 
发表于 2006-4-17 16:06  资料  个人空间  短消息  加为好友 
试验了,没错,问题又来了,如果是想对PID=`ps -ef | grep aaa|grep -v 'grep'   | awk '{print $2}' |head -1` 的结果进行如果为空的判断和处理,该怎么用if语句表示呢?

顶部
wind_7th
LU新生
Rank: 1



UID 47767
精华 0
积分 2
帖子 3
活跃指数 1
LU金币 4 个
LU金条 0 个
阅读权限 10
注册 2006-5-29
 
发表于 2006-6-26 15:21  资料  个人空间  短消息  加为好友 


QUOTE:
原帖由 polosky 于 2006-4-17 16:06 发表
试验了,没错,问题又来了,如果是想对PID=`ps -ef | grep aaa|grep -v 'grep'   | awk '{print $2}' |head -1` 的结果进行如果为空的判断和处理,该怎么用if语句表示呢?



QUOTE:
PID=`ps -ef | grep aaa|grep -v 'grep'   | awk '{print $2}' |head -1|wc -l`

如果查找有结果$PID就是1,查找没有结果$PID就是0。下面的if部分都不改都行了。

顶部
[广告] 记录自己的思想火花,留住每日的技术积累,尽在拥有属于自己独立域名的博客。
luiwei1981
LU新生
Rank: 1



UID 52718
精华 0
积分 1
帖子 1
活跃指数 0
LU金币 1 个
LU金条 0 个
阅读权限 10
注册 2006-8-20
 
发表于 2006-8-20 15:34  资料  个人空间  短消息  加为好友 
wind_7th 你好

wind_7th  你好 希望你能加我QQ46334701 我是新手 希望你能指点我
爱U新生

顶部
[广告] 记录自己的思想火花,留住每日的技术积累,尽在拥有属于自己独立域名的博客。
 



当前时区 GMT+8, 现在时间是 2008-12-3 04:57
乐悠LoveUnix论坛-京ICP备05005823号

Thanks to Discuz!  © 2001-2007    Power by LoveUnix.net
Processed in 0.093096 second(s), 6 queries , Gzip enabled

清除 Cookies - 联系我们 - 乐悠LoveUnix - Archiver