有没有办法隐藏 axel 命令的所有输出,但不要隐藏progress bar
。我想要获得类似的输出;
[ 5%] [0 1 2 3 ] [ 567,5KB/s] [15:59]
这是输出,axel -a
但它总是打印每一步,尽管我编辑了 ~/.axelrc 和 /etc/axelrc,我将其更改# verbose = 1
为0
。我不想像 那样将其发送到背景command &
。你有什么想法吗?请不要在 wget 中提出建议,wget
我可以用它,-nv --show-progress
但没有 axel 的选项。
答案1
在bash
终端中,您可以使用:
axel -a http://url | awk -W interactive '$0~/\[/{printf "%s'$'\r''", $0}'
使用-W interactive
awk 读取行缓冲并将非缓冲内容写入 stdout。然后在行中awk
搜索并用字符打印出来。[
^M
$'\r'
您还可以为此编写一个函数:
function axel_progress {
axel -a "$1" | awk -W interactive '$0~/\[/{printf "%s'$'\r''", $0}'
}
现在您可以axel
通过以下方式致电:
axel_progress http://url