我想在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
答案 0 :(得分:1)
在Xfces中,用户定义的操作%
必须进行转义。所以你需要在这里使用
filename="${filename%%.*}";
而不是
filename="${filename%.*}";