我正在尝试制作一个应该像这样使用的 shell 脚本:
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
值。关于如何做到这一点的任何想法?
最佳答案
您提供给 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
缺点是您必须以正确的顺序提供它。有一些库可以更轻松地在命令行上解析命名参数,但通常对于简单的 shell 脚本,如果没有问题,您应该使用简单的方法。
那么你可以这样做:
/usr/local/bin/abbyyocr9 -rl Swedish -if "$1" -of "$2" 2>&1
$1
和 $2
周围的双引号并非总是必需的,但建议使用,因为如果您不将它们放在双引号之间,某些字符串将不起作用引号。
https://stackoverflow.com/questions/18003370/