![是否有态度避免通过管道将下载的数据发送到标准输出?](https://linux22.com/image/170013/%E6%98%AF%E5%90%A6%E6%9C%89%E6%80%81%E5%BA%A6%E9%81%BF%E5%85%8D%E9%80%9A%E8%BF%87%E7%AE%A1%E9%81%93%E5%B0%86%E4%B8%8B%E8%BD%BD%E7%9A%84%E6%95%B0%E6%8D%AE%E5%8F%91%E9%80%81%E5%88%B0%E6%A0%87%E5%87%86%E8%BE%93%E5%87%BA%EF%BC%9F.png)
请考虑以下命令:
wget FILE -O - | tar -xzv -C DESTINATION
我从程序员那里了解到谁评论了我创建的 Bash 代码最好根据评论分开,以防止提取以错误方式下载的文件的情况tar
:wget
下载文件应该是与升级分开的一个步骤,因为在您想要升级时互联网可能会出现故障。如果您先下载文件,稍后可以跳过该步骤。它还可以节省带宽。例如,在 pkgsrc 中...
我从man bash on set 内置,由于选项的原因,使用set -euo
将允许安全使用;如果没有成功(非零退出代码),管道不会将数据传输到.wget
-e
tar
是否有态度避免通过管道将下载的数据发送到标准输出?
答案1
-e
这里无济于事:“如果失败的命令是……管道中除最后一个命令之外的任何命令,则 shell 不会退出”。
至于这是否是一个好主意。这要看情况,会造成什么后果?