Аргументы , которые вы предоставляете в 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
не всегда необходимы, но рекомендуется, потому что некоторые строки не будут работать, если вы не поместите их между двойными кавычками.