分页: 1 / 1

[问题]一个简单的bsh脚本错误

发表于 : 2007-10-09 16:57
dvdface
小弟刚刚学习bshell编程,书很破,什么都讲了,什么都没说明白, 自己摸索着写了个小程序

通过传入一个进程名称的参数,这个脚本通过ps命令监视,如果这个进程名在ps列出的进程中没有出现,那么关机

不知道哪里写错了,恳请各位大虾指导指导。

还有,就是不知道哪儿有什么好的shell编程的影印版的书或者翻译不错的。

最好能有以下内容:

变量的定义
变量的使用
变量值的改变

字符串的比较(比如,测试某个字符串是不是以 .chm 结尾之类的)

and so on

预先谢谢大家了
#! /bin/sh
#监视某个进程结束后,自动关机

flag="1"

while [ "$flag" = "1" ]
do
$flag="0"

ps -A | while read a b c d
do
if [ "$d" = "$1" ]
then
echo "Program '$d' is not finished yet, Wait 2 seconds for next check"
$flag="1"
echo $flag
break
fi
done

sleep 2
done

halt

发表于 : 2007-10-09 17:15
bones7456
何必这么复杂呢?
看这个:

代码: 全选

#! /bin/sh
#监视某个进程结束后,自动关机

while(ps -A|grep $1) do sleep 2; done;
halt

发表于 : 2007-10-09 22:40
dvdface
bones7456 写了:何必这么复杂呢?
看这个:

代码: 全选

#! /bin/sh
#监视某个进程结束后,自动关机

while(ps -A|grep $1) do sleep 2; done;
halt
你这个是C shell吧 ? B shell不能这么用吧 ?


不要提出其他的问题, 先把我这个解决了先。

发表于 : 2007-10-10 11:36
bones7456
:shock: 这不是已经解决了你的问题...

发表于 : 2007-10-10 12:11
dvdface
bones7456 写了::shock: 这不是已经解决了你的问题...
问题我这是在学习BSHELL啊, 虽然我的方法挺笨的, 但是我还是想知道为什么我的脚本执行的时候会出问题。


帮忙看看,我的为什么会出问题吧 。

发表于 : 2007-10-10 12:32
BigSnake.NET
用pgrep

找不到返回假