Bla*_*Red 4 command-line zenity shredding
我想使用 的输出shred来制作进度条zenity。
我的shred命令看起来像这样。
sudo shred -vfn 1 /dev/sda
Run Code Online (Sandbox Code Playgroud)
我是 Linux 新手。所以我可能错过了一个明显的解决方案。
进度条很简单...我想您要问的是如何使其更新并反映...的输出状态shred...好吧,您可以使用如下内容:
shred -vfn 1 file_toshred |& \
while read -r line; do awk '{print $NF+0}' <<<"$line"; done | \
zenity --progress
Run Code Online (Sandbox Code Playgroud)
注意:出于人们测试代码的安全原因,我更改sudo shred -vfn 1 /dev/sda为,但这也可以工作。shred -vfn 1 file_toshred
will|&管道stderr(解析输出所需shred)以及stdoutBash 中的管道...对于不支持它的其他 shell,您可以使用它2>&1,并且可能将 herestring( <<<"$line") 语法更改为echo "$line" | ...如下所示:
shred -vfn 1 file_toshred 2>&1 | \
while read -r line; do echo "$line" | \
awk '{print $NF+0}'; done | \
zenity --progress
Run Code Online (Sandbox Code Playgroud)
要打印输出文本,您可以在循环echo "# $line";内部添加while ...,并且您可能希望zenity通过设置来扩展窗口以容纳输出,--width=如下所示:
shred -vfn 1 file_toshred 2>&1 | \
while read -r line; do echo "$line" | \
awk '{print $NF+0}'; echo "# $line"; done | \
zenity --progress --width="500"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
771 次 |
| 最近记录: |