1

端末でこの gimp バッチ コマンドを実行したい

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

このためのシェルスクリプトを作成して、さまざまなパラメーターでコマンドを再利用できるようにしました

#!/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

コマンドを直接実行すると機能しますが、シェルスクリプトを実行すると失敗します。これは私を困惑させます。何か案は。

4

1 に答える 1

2

シェルでは、一重引用符で文字列を変数で囲むことはできません。変数は補間されないため、次のようになります。

#!/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/Quotesおよびhttp://wiki.bash-hackers.org/syntax/wordsを参照してください。

于 2013-02-18T22:47:02.843 に答える