0

我正在实现一个外壳,我让一切工作正常。我现在面临的问题是如何管理多个管道?例如 ls -a -l -F | tr [az] [AZ] | 种类

问题:我有这个数组,我想将命令分开,这样我就可以处理每个进程

args[0]= ls  
args[1]= -a  
args[3]= -l   
args[4]= -F  
args[5]= |  
args[6]= tr  
args[7]= [a-z]  
args[8]= [A-Z]  
args[9]= |  
args[10]= sort

每次找到“|”时如何分隔命令?所以我最终得到了这样的东西

    args1[0]= ls  
    args1[1]= -a  
    args1[3]= -l   
    args1[4]= -F 

    args2[0]= tr  
    args2[1]= [a-z]  
    args2[2]= [A-Z] 

    args3[0] = sort

非常感谢您的帮助,非常感谢任何反馈

4

1 回答 1

2

您将需要多个管道。每个管道将从进程n获取标准输出,并将其提供给进程n+1的标准输入。您不能共享管道,否则您的标准输出将在进程之间交错。

类似问题的回答可能有用。

于 2013-11-14T15:26:19.060 回答