Koh*_*ese 4 command-line bash cat
我正在运行一个命令:
cat urls.txt | xargs -L 1 -P 5 timeout 40 wget
Run Code Online (Sandbox Code Playgroud)
这将下载 urls.txt 中的所有 URL
这曾经工作正常,但最近我将我正在下载的 URL 更改为:domain.com/54f-5g4/ 到 domain.com/this-that/
出于某种原因,我现在得到:
cat: write error: Broken pipe
Run Code Online (Sandbox Code Playgroud)
我查看了正在执行的命令,它们看起来都很好,即没有未转义的字符。
有谁知道问题可能是什么?或者如何获取更多的调试信息?我相信问题出在管道之后的命令上。
更新:我发现了错误。看起来我不小心在我的 urls.txt 文件中输入了一个 ' 。如果您收到此错误,则您在管道后的命令有问题。
在 shell 中使用管道时:
command_1 | command_2
Run Code Online (Sandbox Code Playgroud)
command_1 的输出通过管道传送到 command_2 作为输入。如果 command_2 在读取 command_1 的所有输出之前结束(例如,在您的情况下,因为它发现了错误,正如您在更新中所说的那样,您不小心键入了 a '
),则 command_1 可能会抱怨它的输出管道过早关闭。
归档时间: |
|
查看次数: |
27626 次 |
最近记录: |