1

当我使用 cURL 时,我发现 cURL 似乎知道它自己的输出是否会被重定向,或者是另一个程序的输入。

以下是两个不同的命令:

curl http://www.google.com/

输出将是:

<HTML><HEAD>......blah, blah......</HEAD></HTML>

但如果我使用重定向或管道,cURL 将打印其下载状态。

curl http://www.google.com/ | xargs echo

输出将领先于:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   376  100   376    0     0   2729      0 --:--:-- --:--:-- --:--:--  5295
<HTML><HEAD>......blah, blah......</HEAD></HTML>

我的问题是:cURL 如何知道它的打印是否会被重定向?

4

1 回答 1

2

isatty(3)会告诉您 FD 是否连接到 TTY。

于 2013-01-14T09:13:47.067 回答