2006-4-14 18:12
polosky
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 都试了,仍然报错,搞不懂了,指点一下吧,谢了。
2006-4-17 13:01
大漠孤星
if [ a -gt 0 ] 注意在条件两边加上空格
then
else
fi
你要注意$PID的值出来是不是1 2 3 4 之类的,如果是,还要改你的PID="`ps -ef | grep aaa|grep -v 'grep' | awk '{print $2}'`"
2006-4-17 14:29
polosky
顺便问一下,PID="`ps -ef | grep aaa|grep -v 'grep' | awk '{print $2}'`"的结果有很多行,只取第一行怎么写呢?
2006-4-17 15:07
大漠孤星
ps -ef | grep aaa|grep -v 'grep' | awk '{print $2}'|head -1
2006-4-17 16:06
polosky
试验了,没错,问题又来了,如果是想对PID=`ps -ef | grep aaa|grep -v 'grep' | awk '{print $2}' |head -1` 的结果进行如果为空的判断和处理,该怎么用if语句表示呢?
2006-6-26 15:21
wind_7th
[quote]原帖由 [i]polosky[/i] 于 2006-4-17 16:06 发表
试验了,没错,问题又来了,如果是想对PID=`ps -ef | grep aaa|grep -v 'grep' | awk '{print $2}' |head -1` 的结果进行如果为空的判断和处理,该怎么用if语句表示呢? [/quote]
[quote]PID=`ps -ef | grep aaa|grep -v 'grep' | awk '{print $2}' |head -1|wc -l`[/quote]
如果查找有结果$PID就是1,查找没有结果$PID就是0。下面的if部分都不改都行了。
2006-8-20 15:34
luiwei1981
wind_7th 你好
wind_7th 你好 希望你能加我QQ46334701 我是新手 希望你能指点我
爱U新生
页:
[1]
Powered by Discuz! Archiver 5.5.0
© 2001-2006 Comsenz Inc.