gimp的Shell脚本编程

gimp的Shell脚本编程,shell,gimp,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 \"

我想在终端上运行这个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脚本时,它会失败。这使我困惑。任何想法。

在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)'

学习引号之间的区别。请参见和

在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)'

学习引号之间的区别。请参阅和

此代码段的目的是什么?调试带有参数的批处理命令的一种快速方法是在命令开头加上“echo”(
echo gimp-i-b…
)。这将在不运行命令的情况下显示生成的命令(如果您不确定该命令的格式是否正确,则很有用)。`是,或使用
#/bin/bash-x
此代码段的目的是什么?使用参数调试批处理命令的一种快速方法是在命令的开头加上“echo”(
echo gimp-i-b…
)。这将在不运行命令的情况下显示生成的命令(如果您不确定该命令的格式是否正确,则很有用)。`是,或使用
#/bin/bash-x