Les arguments que vous fournissez à un bashscript apparaîtront dans les variables $1et $2et $3où le nombre fait référence à l'argument. $0est la commande elle-même.
Les arguments sont séparés par des espaces, donc si vous fournissez le -fromet -todans la commande, ils finiront également dans ces variables, donc pour ceci:
./ocrscript.sh -from /home/kristoffer/test.png -to /home/kristoffer/test.txt
Tu auras:
$0 # ocrscript.sh
$1 # -from
$2 # /home/kristoffer/test.png
$3 # -to
$4 # /home/kristoffer/test.txt
Il peut être plus facile d'omettre le -fromet le -to, comme:
ocrscript.sh /home/kristoffer/test.png /home/kristoffer/test.txt
Ensuite, vous aurez:
$1 # /home/kristoffer/test.png
$2 # /home/kristoffer/test.txt
L'inconvénient est que vous devrez le fournir dans le bon ordre. Il existe des bibliothèques qui peuvent faciliter l'analyse des arguments nommés sur la ligne de commande, mais généralement pour les scripts shell simples, vous devez simplement utiliser la méthode la plus simple, si cela ne pose aucun problème.
Ensuite, vous pouvez faire:
/usr/local/bin/abbyyocr9 -rl Swedish -if "$1" -of "$2" 2>&1
Les guillemets doubles autour du $1et du $2ne sont pas toujours nécessaires mais sont conseillés, car certaines chaînes ne fonctionneront pas si vous ne les mettez pas entre guillemets doubles.