如何在 C shell 中逐行解析标准输出?

How can I parse stdout line by line in C shell?

如果我有一个打印到 stdoud 的脚本 (script.csh),例如:

echo "First line"
echo "Second line"
echo "Third line"

然后我尝试从另一个脚本解析该脚本的输出:

foreach line (`script.csh`)
    echo $line
end

输出由空格而不是新行分隔:

First
line
Second
line
Third
line

我该如何解决才能一次读一行?而且我知道不推荐使用 C shell,但这是我老板希望我使用的。

您只需将脚本输出双引号:

#!/usr/bin/env csh
foreach line ("`script.csh`")
   echo $line
end

结果将是:

$ ./parser.csh 
First line
Second line
Third line