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

sh/bash/dash/ksh/zsh等Shell脚本
回复
dvdface
帖子: 152
注册时间: 2006-08-16 22:19
来自: 湖北武汉
送出感谢: 0
接收感谢: 1 次
联系:

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

#1

帖子 dvdface » 2007-10-09 16:57

小弟刚刚学习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
头像
bones7456
论坛版主
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
送出感谢: 0
接收感谢: 8 次
联系:

#2

帖子 bones7456 » 2007-10-09 17:15

何必这么复杂呢?
看这个:

代码: 全选

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

while(ps -A|grep $1) do sleep 2; done;
halt
关注我的blog: ε==3
dvdface
帖子: 152
注册时间: 2006-08-16 22:19
来自: 湖北武汉
送出感谢: 0
接收感谢: 1 次
联系:

#3

帖子 dvdface » 2007-10-09 22:40

bones7456 写了:何必这么复杂呢?
看这个:

代码: 全选

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

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


不要提出其他的问题, 先把我这个解决了先。
头像
bones7456
论坛版主
帖子: 8495
注册时间: 2006-04-12 20:05
来自: 杭州
送出感谢: 0
接收感谢: 8 次
联系:

#4

帖子 bones7456 » 2007-10-10 11:36

:shock: 这不是已经解决了你的问题...
关注我的blog: ε==3
dvdface
帖子: 152
注册时间: 2006-08-16 22:19
来自: 湖北武汉
送出感谢: 0
接收感谢: 1 次
联系:

#5

帖子 dvdface » 2007-10-10 12:11

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


帮忙看看,我的为什么会出问题吧 。
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
送出感谢: 0
接收感谢: 7 次
联系:

#6

帖子 BigSnake.NET » 2007-10-10 12:32

用pgrep

找不到返回假
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
回复

回到 “Shell脚本”