0

例如,在

$ myprefixprogram prog1 | prog2 | prog3

myprefixprogram以某种方式看到完整的命令字符串prog1 | prog2 | prog3并可能修改它吗?

(我意识到prog1可以通过$*$@[1] 获得)

编辑:这实际上是外壳输入预处理,但来自内部bash/sh而不是外部。

[1] http://www.tldp.org/LDP/abs/html/internalvariables.html#ARGLIST

4

2 回答 2

3

| prog2 | prog3不是您程序的参数。这是 shell 重定向,将进程的标准输出重定向到以下标准输入。只有外壳知道这一点。

prog1确实是您程序的一个参数,您可以修改它。

但是,我不确定您要做什么。你是?

于 2013-09-25T17:29:16.110 回答
1

不,shell 将解析命令并设置管道,因为您的脚本可以找出子进程。

于 2013-09-25T17:31:11.817 回答