2013-09-24 47 views
1

如何将控件返回到父进程的bash脚本中,当您在子进程中时?控制子进程制作

#/bin/bash 
global_i=0 
global_j=0 
while((i<100)) 
do 
    (
    while((j<100)) 
    do 
     mkdir "shiv$i$j" 
     let j=j+1 
    done 
    ) 
    echo shiv 
    let i=i+1 
done 

每一件事工作正常,但echo命令没有运行,这意味着控制不回来的父进程。而且,只有两个进程的PID:一个是父进程等是子进程...但我想要100个子进程。

在C语言中,我们可以使用fork函数轻松完成 - 如何在bash脚本中执行此操作?

+0

你打算同时运行100个进程?这是一个相当危险的任务,而不是IO友好。此外,它似乎实际上是你试图运行100 * 100任务。 – konsolebox

+2

我认为OP希望第二个while循环处于另一个进程中。到OP:就像在第二个while循环的末尾添加'&一样简单:'(while((j <100))...)&'这是创建子进程的符号符号,而不是括号。 – justhalf

回答

0

我只是忘了输入&这使得子进程

的代码应该是

#/bin/bash 
global_i=0 
global_j=0 
while((i<100)) 
do 
(
while((j<100)) 
do 
mkdir "shiv$i$j" 
let j=j+1 
done 
)& 
echo shiv 
let i=i+1 
done 
+1

顺便说一句,我只是编辑..backquotes什么都不做,只是在终端上运行代码,并取代输出..因此它是mkdir,所以它不会造成任何伤害 –