我需要一个使用 shred 输出的 zenity 进度条

我需要一个使用 shred 输出的 zenity 进度条

我想使用 的输出来shred制作进度条zenity

我的shred命令如下。

sudo shred -vfn 1 /dev/sda

我是 Linux 新手。所以我可能错过了一个显而易见的解决方案。

答案1

进度条很简单...我猜你问的是如何让它更新并反映输出状态shred...嗯,你可以使用这样的东西:

shred -vfn 1 file_toshred |& \
while read -r line; do awk '{print $NF+0}' <<<"$line"; done | \
zenity --progress

注意:我出于测试代码的人员的安全原因进行了更改sudo shred -vfn 1 /dev/sdashred -vfn 1 file_toshred但这也可以起作用。

意志|&管道stderr解析shred输出所需的)以及stdoutBash ...对于不支持它的其他 shell,您可以改用2>&1并可能更改这里的字符串(<<<"$line") 语法如下echo "$line" | ...

shred -vfn 1 file_toshred 2>&1 | \
while read -r line; do echo "$line" | \
awk '{print $NF+0}'; done | \
zenity --progress

要打印输出文本,您可以在循环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"

相关内容