免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 9079 | 回复: 10
打印 上一主题 下一主题

linux下shell的if语句如何写? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-04-17 10:11 |只看该作者 |倒序浏览
在linux的bash环境下 执行如下脚本do.sh
while (true)
do
PID="`ps -ef | grep aaa|grep -v 'grep' | awk '{print $2}'`"
if $PID > 0Sample Text
then
sleep 300
else
date >>do.log
echo aaa >>do.log
fi
done
报错如下:
./do.sh: line 4: 21474: command not found
将if 后加了圆括号 、把>换成 -gt 都试了,仍然报错,搞不懂了,指点一下吧,谢了。

论坛徽章:
0
2 [报告]
发表于 2006-04-17 11:26 |只看该作者
只需加
  1. if ($PID > 0)
复制代码

论坛徽章:
0
3 [报告]
发表于 2006-04-17 11:32 |只看该作者
应该是if [ $PID -gt 0 ]吧?

论坛徽章:
0
4 [报告]
发表于 2006-04-17 12:07 |只看该作者
方括号、圆括号都不对,报错:
./do.sh: line 8: [21474: command not found

论坛徽章:
0
5 [报告]
发表于 2006-04-17 12:24 |只看该作者
原帖由 polosky 于 2006-4-17 12:07 发表
方括号、圆括号都不对,报错:
./do.sh: line 8: [21474: command not found


方括号的是正确的,只是你书写错误
方括号“[”的后面和“]”的前面都必须要空格

论坛徽章:
0
6 [报告]
发表于 2006-04-17 12:25 |只看该作者
PID="`ps -ef | grep aaa|grep -v 'grep' | awk '{print $2}'`"
这句好象是错的

论坛徽章:
0
7 [报告]
发表于 2006-04-17 14:44 |只看该作者
顺便问一下,PID="`ps -ef | grep aaa|grep -v 'grep'   | awk '{print $2}'`"的结果有很多行,只取第一行怎么写呢?

论坛徽章:
0
8 [报告]
发表于 2006-04-17 15:00 |只看该作者
原帖由 polosky 于 2006-4-17 14:44 发表
顺便问一下,PID="`ps -ef | grep aaa|grep -v 'grep'   | awk '{print $2}'`"的结果有很多行,只取第一行怎么写呢?

去掉双引号应该就可以了。
PID=`ps -ef | grep aaa|grep -v 'grep' | awk '{print $2}'`

论坛徽章:
0
9 [报告]
发表于 2006-04-17 15:03 |只看该作者
原帖由 polosky 于 2006-4-17 14:44 发表
顺便问一下,PID="`ps -ef | grep aaa|grep -v 'grep'   | awk '{print $2}'`"的结果有很多行,只取第一行怎么写呢?

不好意思看错了,这样应该可以吧?
PID=`ps -ef | grep aaa|grep -v 'grep'   | awk '{print $2}' |sed -n '1p'`

论坛徽章:
0
10 [报告]
发表于 2006-04-17 16:19 |只看该作者
试验了,没错,问题又来了,如果是想对PID=`ps -ef | grep aaa|grep -v 'grep'   | awk '{print $2}' |sed -n '1p'` 的结果进行如果为空的判断和处理,该怎么用if语句表示呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP