【发布时间】:2015-04-08 21:38:45
【问题描述】:
我想在 Xfce 中使用用户定义的操作来转换图片。
所以我写了
for i in %F; do filename=$(basename "$i");
extension="${filename##*.}";
filename="${filename%.*}";
convert -resize 1024 $i $filename-1024px.$extension;
done
但是这个不起作用......而当我在 shell 中执行它时(* 而不是 %F)它正在工作。
for i in *; do filename=$(basename "$i");
extension="${filename##*.}";
filename="${filename%.*}";
convert -resize 1024 $i $filename-1024px.$extension;
done
我认为变量的存储有问题?
编辑:
这仍然有效:
for i in %F;
do filename=$(basename "$i");
extension="${filename##*.}";
notify-send "$filename";
done
更改为以下代码后它停止工作:
for i in %F;
do filename=$(basename "$i");
extension="${filename##*.}";
filename="${filename%.*}";
notify-send "$filename";
done
【问题讨论】:
-
%F应该是什么? -
@EtanReisner %F — 所有选定文件的路径。例如。如果我这样做
for i in %F; do notify-send "$i"; done,我会显示所有选定文件的完整路径。 -
这是 xfce 动作的东西?那 sn-p 不工作怎么办?您是否在脚本中得到了
%F? -
是的,这是一个 Xfce action。我通常会得到
%F,它正在处理简单的东西,比如上面的例子或for i in %F; do convert -resize 1024 $i $i; done -
那么究竟上面的 sn-p 是怎么回事?