Bashのスクリプトパラメータ 質問する

Bashのスクリプトパラメータ 質問する

次のように使用するシェル スクリプトを作成しようとしています。

ocrscript.sh -from /home/kristoffer/test.png -to /home/kristoffer/test.txt

次に、スクリプトは画像ファイルを OCR でテキスト ファイルに変換します。これまでに私が作成したものは次のとおりです。

#!/bin/bash
export HOME=/home/kristoffer
/usr/local/bin/abbyyocr9 -rl Swedish -if ???fromvalue??? -of ???tovalue??? 2>&1

-fromしかし、および の値を取得する方法がわかりません-to。 方法について何かアイデアはありますか?

ベストアンサー1

bashscript に提供する引数は、変数とに表示され$1$2数字$3は引数を表します。$0はコマンドそのものです。

引数はスペースで区切られるため、コマンドに および を指定すると-from-to引数もこれらの変数に設定されます。次のようになります。

./ocrscript.sh -from /home/kristoffer/test.png -to /home/kristoffer/test.txt

以下が手に入ります:

$0    # ocrscript.sh
$1    # -from
$2    # /home/kristoffer/test.png
$3    # -to
$4    # /home/kristoffer/test.txt

-from次のように、 と を省略する方が簡単かもしれません-to

ocrscript.sh /home/kristoffer/test.png /home/kristoffer/test.txt

すると次のようになります:

$1    # /home/kristoffer/test.png
$2    # /home/kristoffer/test.txt

欠点は、正しい順序で指定する必要があることです。コマンドラインで名前付き引数を簡単に解析できるライブラリがありますが、通常、単純なシェル スクリプトの場合は、問題がなければ簡単な方法を使用する必要があります。

次に、次の操作を実行します。

/usr/local/bin/abbyyocr9 -rl Swedish -if "$1" -of "$2" 2>&1

$1およびを囲む二重引用符は$2必ずしも必要ではありませんが、二重引用符で囲まないと一部の文字列が機能しないため、使用することをお勧めします。

おすすめ記事