【发布时间】:2018-06-18 09:45:06
【问题描述】:
我成功地使用了 python 工具tqdm 来显示一个漂亮的进度条,例如解压一个大文件。但是我不知道如何阻止它并显示 unzip 命令中的错误(如果有)。
#!/bin/bash
function progressBarFiles() {
local total_files="$1"
if hash tqdm 2>/dev/null; then
tqdm --total $total_files --unit files --desc counting | wc -l >/dev/null
else
cat
fi
}
unzip -o huge.zip | progressBarFiles 1697
目前由于文件权限更改失败,我在网络文件夹中解压缩失败:
counting: 1%|█▉ | 22/1697 [00:00<00:28, 58.36files/s]
chmod (directory attributes) error: Permission denied
chmod (directory attributes) error: Permission denied
chmod (directory attributes) error: Permission denied
counting: 2%|██▎ | 26/1697 [00:00<00:35, 46.64files/s]
chmod (directory attributes) error: Permission denied
我想在进度条之后停止脚本并一起打印此错误输出,而不是在解压缩时(这会破坏进度条)。
PS:cat 让进度条完全可选的想法是否可以改进?
【问题讨论】:
-
将
unzip的stderr重定向到一个临时文件,完成后cat到stderr。 -
临时文件是唯一的解决方案吗?