-1

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

1 回答 1

1

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

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

代替

filename="${filename%.*}";
于 2015-04-09T15:51:34.427 回答