用于gimp的Shell脚本编程

时间:2013-02-18 22:45:01

标签: shell gimp

我想在终端上运行这个gimp批处理命令

gimp -i -b '(batch-despeckle "check.jpg" "out.jpg" 10 3 -1 255)' -b '(gimp-quit 0)'

我为此编写了一个shell脚本,以便我可以重用不同参数的命令

#!/bin/bash
filename_src=$1
filename_dest=$2
radius=$3
type=$4
black=$5
white=$6
gimp -i -b '(batch-despeckle \"$filename_src\" \"$filename_dest\" $radius $type $black $white)' -b '(gimp-quit 0)'

我使用命令

调用此脚本
./gimp_despeckle check.jpg out.jpg 10 3 -1 255

当我直接运行该命令时,它可以工作,但是当我运行shell脚本时,它会失败。这令我感到困惑。任何想法。

1 个答案:

答案 0 :(得分:1)

在shell中,你不能用带单引号的变量包围一个字符串:该变量不会被插值,所以:

#!/bin/bash
filename_src="$1"
filename_dest="$2"
radius="$3"
type="$4"
black="$5"
white="$6"
gimp -i -b "(batch-despeckle \"$filename_src\" \"$filename_dest\" $radius $type $black $white)" -b '(gimp-quit 0)'

了解引号之间的区别。请参阅http://mywiki.wooledge.org/Quoteshttp://wiki.bash-hackers.org/syntax/words