分页: 1 / 1

[问题]<高级Bash脚本编程指南>又遇到的一例子的问题

发表于 : 2008-01-20 17:27
chai21cn
第11章,第1个例子
代码如下

代码: 全选

#!/bin/bash
# spawn.sh


PIDS=$(pidof sh $0)  # Process IDs of the various instances of this script.
P_array=( $PIDS )    # Put them in an array (why?).
echo $PIDS           # Show process IDs of parent and child processes.
let "instances = ${#P_array[*]} - 1"  # Count elements, less 1.
                                      # Why subtract 1?
echo "$instances instance(s) of this script running."
echo "[Hit Ctl-C to exit.]"; echo


sleep 1              # Wait.
sh $0                # Play it again, Sam.

exit 0               # Not necessary; script will never get to here.
                     # Why not?

#  After exiting with a Ctl-C,
#+ do all the spawned instances of the script die?
#  If so, why?

# Note:
# ----
# Be careful not to run this script too long.
# It will eventually eat up too many system resources.

#  Is having a script spawn multiple instances of itself
#+ an advisable scripting technique.
#  Why or why not?
问题:
按这个例子的意思是不按Ctl-C这个脚本是不会停止的

我运行出错:
6713 6701 6476 5561
3 instance(s) of this script running.
[Hit Ctl-C to exit.]

./spawn.sh: 6: Syntax error: "(" unexpected
指点指点 :roll:

发表于 : 2008-01-20 17:32
BigSnake.NET
你打漏了点东西

发表于 : 2008-01-20 17:35
chai21cn
最开始我是自己打的,出现这个问题后
我就直接把原版的脚本文件copy出来执行的也是这样的

发表于 : 2008-01-20 17:44
eexpress
P_array=( $PIDS )
这是什么意思。
改改吧。

发表于 : 2008-01-20 17:51
chai21cn
eexpress 写了:P_array=( $PIDS )
这是什么意思。
改改吧。
这是给数组赋值

发表于 : 2008-01-20 18:00
BigSnake.NET
chai21cn 写了:最开始我是自己打的,出现这个问题后
我就直接把原版的脚本文件copy出来执行的也是这样的
我 copy 你贴出来的东西
正常...

发表于 : 2008-01-20 18:08
chai21cn
怪事,我也copy了贴出来的还是这个问题
:em23

发表于 : 2008-01-20 18:13
chai21cn
有可能是我的本地环境有问题