bash - BASH/GNU Tar - 管道输出到函数
问题描述
我试图提取一个常见的 tar.gz 文件。我目前有:
function streamLog()
{
if [ -n "$1" ]
then
IN="$1"
else
read IN # This reads a string from stdin and stores it in a variable called IN
fi
if [ -z "${IN}" ]
then
return 0
else
echo "${IN}" >> zlib.log
fi
}
/bin/tar --no-same-owner -zxvf ~/src/zlib-1.2.11.tar.gz -C /build | streamLog
这会导致 zlib 中包含的许多文件无法提取。奇怪的是有些人这样做。我看到没有输出发送到我的 streamLog 函数,这是意外的。到目前为止,这是我使用此方法失败的唯一命令。
我希望 tar 可能是一个特例。为什么会发生这种情况?
我应该怎么做才能正确地将命令的输出流式传输到函数?
解决方案
推荐阅读
- java - 如何像其他 Cordova 应用程序一样使用 Java 获取 android 的 uuid?
- android - 本地通知在按钮单击时崩溃 Ionic/Angular/Cordova 应用程序
- sql - 错误:将 .txt 导入表报告列缺少数据 - POSTGRESQL
- javascript - 使用 node js 将 PEM 字符串转换为 X509 证书而不使用 node-forge
- css - 如何使带有方形单元格的表格响应?
- swift - 如何在 NSTextView 单击位置显示光标 - MacOS
- excel - pd.read_excel - 导入具有不同设置的多张工作表
- html - 活动时元素变换(半按)
- flutter - 更改 ThemeData.dark() 的一个属性
- javascript - 获取表格中的位置