Jar*_*nen 11 bash tail nohup stdout
我开始在后台下载一个大文件使用
$ nohup wget http://example.tld/big.iso &
Run Code Online (Sandbox Code Playgroud)
这也给了我一个nohup.out包含wget.
现在,如果我以后想观看下载过程,我可以使用,$ tail -f nohup.out但这会比我希望的更快地填满我的终端窗口。我想看到的是最后一行不断更新(就像wget单独使用时一样)。
我试过了,$ tail -n 1 -f nohup.out但它似乎只影响最初的tailin'。
一般来说,如果可以限制(在这种情况下为 1)命令的输出可用/可见的行数,它将解决这个问题。有点在循环缓冲区中输出- 想想正常的进度条$ wget example.tld/big.iso会打印。
有这样的解决方案吗?
还是我爬树的方式不对?(意思是,限制nohup输出或做其他事情会更容易吗?)
jan*_*sen 10
如果您不想限制滚动区域(请参阅我的其他答案),您还可以在打印下一行之前使用回车返回到行首。有一个转义序列可以清除该行的其余部分,当当前行比前一行短时,这是必要的。
nohup wget http://cdimage.debian.org/debian-cd/6.0.3/amd64/iso-dvd/debian-6.0.3-amd64-DVD-1.iso &
el="$(tput el)"; # Clear to the end of the line
tail -n 1 -f nohup.out | while read -r line; do echo -n $'\r'"$el$line"; done;
Run Code Online (Sandbox Code Playgroud)
你可以watch在这里使用:
watch -n 0.5 -e "tail -n 1 nohup.out"
Run Code Online (Sandbox Code Playgroud)
编辑:-e(alias --exec) 选项在这里看起来很合适。特别是如果您的目标是以watch非常小的间隔运行,这会减少每个周期sh -c内部运行造成的开销watch。
| 归档时间: |
|
| 查看次数: |
30167 次 |
| 最近记录: |