Xfces用户定义的操作不起作用,而它在控制台中工作

时间:2015-04-08 21:38:45

标签: linux bash scripting xfce

我想在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

1 个答案:

答案 0 :(得分:1)

在Xfces中,用户定义的操作%必须进行转义。所以你需要在这里使用

filename="${filename%%.*}";

而不是

filename="${filename%.*}";