我为我的 dolphin 上下文菜单实现了一些 shell 脚本。在 shell 脚本中,我运行了一些命令,这需要一些时间。
我的问题是:是否可以在(a)shell 脚本中实现一些代码,以便弹出窗口或通知字段(kde plasma)中的状态栏显示出来?
这是我想要使用进度条的脚本:
#!/bin/bash
mkdir small
cp *.jpg small
cp *.JPG small
cd small
for i in *.jpg; do
if [ -e "$i" ]; then
file=`basename "$i" .jpg`
mogrify -unsharp 0.25x0.25+8+0.065 -resize 1280x1024 -normalize -density 180 -monitor "$i"
fi
done
for i in *.JPG; do
if [ -e "$i" ]; then
file=`basename "$i" .JPG`
mogrify -unsharp 0.25x0.25+8+0.065 -resize 1280x1024 -normalize -density 180 -monitor "$i"
fi
done
说明:该脚本非常方便将图片(jpeg)后期处理为适合图片协议(ppt,pdf等)的合理大小或其他...
答案1
对我的问题的回答是可行的,但不是最漂亮的;)它缺少百分比的连续进度条。
添加到脚本:
(#your commands) | zenity --progress --auto-close --title="Post-Process Pictures" --text="Rendering pictures..." --pulsate
这将打开一个带有脉动条的窗口。只要命令仍然有效,该窗口就会打开。
完整脚本现在如下所示:
#!/bin/bash
(mkdir small
cp *.jpg small
cp *.JPG small
cd small
for i in *.jpg; do
if [ -e "$i" ]; then
file=`basename "$i" .jpg`
mogrify -unsharp 0.25x0.25+8+0.065 -resize 1280x1024 -normalize -density 180 -monitor "$i"
fi
done
for i in *.JPG; do
if [ -e "$i" ]; then
file=`basename "$i" .JPG`
mogrify -unsharp 0.25x0.25+8+0.065 -resize 1280x1024 -normalize -density 180 -monitor "$i"
fi
done) | zenity --progress --auto-close --title="Post-Process Pictures" --text="Rendering pictures..." --pulsate
最好的,本杰明。
此外:我将脚本与 .desktop 文件结合使用,这样我就可以通过 dolphin 中的左键单击上下文菜单使用它。只需在 /usr/share/kservices5/ServiceMenus 中创建一个包含以下内容的 resize.desktop 文件:
[Desktop Entry]
Actions=resize_pictures
Icon=transform-crop-resize
MimeType=image/jpeg;
ServiceTypes=KonqPopupMenu/Plugin
Type=Service
X-KDE-Priority=TopLevel
[Desktop Action resize_pictures]
Exec=sh pathtoyourscript/resize_pictures
Icon=transform-scale
Name=Resize Image(s)