【发布时间】:2010-12-29 23:22:52
【问题描述】:
我想在 awk 脚本中运行 system 命令并将其输出存储在一个变量中。我一直在尝试这样做,但是命令的输出总是进入 shell,我无法捕获它。关于如何做到这一点的任何想法?
例子:
$ date | awk --field-separator=! {$1 = system("strip $1"); /*more processing*/}
应调用strip 系统命令,而不是将输出发送到shell,应将输出分配回$1 以进行更多处理。现在,它正在向 shell 发送输出并将命令的 retcode 分配给 $1。
【问题讨论】:
-
nit:输出不会进入外壳,而是进入终端/控制台。 shell 不会读取其子级的任何输出——它们只是共享与同一 tty 关联的文件描述符。