当前位置: 首页 > 面试题库 >

Bash中的脚本参数

谭卜鹰
2023-03-14
问题内容

我正在尝试制作应该像这样使用的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并不总是必需的,但是建议使用双引号,因为如果不将它们放在双引号之间,则某些字符串将不起作用。



 类似资料:
  • 我想测试传递给Linux外壳脚本的参数数量,如果参数数量不是或,它应该打印一些东西,不幸的是它不起作用,有人能解释一下我做错了什么吗?

  • 如果不满足所需的参数计数,我希望我的Bash脚本打印一条错误消息。 由于某种未知的原因,我出现了以下错误: 我做错了什么?

  • 问题内容: 我知道我可以使用以下命令从bash脚本运行python脚本: 但是,如果我想将变量/自变量从bash脚本传递到python脚本,该怎么办?我怎样才能做到这一点? 基本上,bash会计算出文件名,然后python将其上传,但是当我调用它时,我需要将文件名从bash发送到python。 问题答案: 要在bash脚本中执行python脚本,您需要调用与终端相同的命令。例如 要在python中

  • 我正在使用两个版本的ROS,彼此相邻。要使用它,我必须为特定版本提供一些环境变量。我想创建一个脚本来实现这一点。但是如果我创建一个如下的脚本,变量没有设置,它们可能是在子shell中设置的。如何将文件源文件发送到主终端外壳? source.sh: 以下是我如何调用source。上海: 更新:通过采购来源。正如答案中所建议的那样,我现在可以看到正在设置的变量。

  • 问题内容: 我正在尝试使用命令记录bash会话。 该命令是从bash脚本开始执行的,但是一旦执行,bash脚本就会终止。 我尝试使用各种组合来始终以相同的结果调用命令(调用该命令后立即终止bash脚本)。我得到的输出如下: 我也尝试过最后用a来调用命令,但是再次失败了。 谁能告诉我如何从bash脚本调用命令? 谢谢 问题答案: 您的Shell脚本没有终止。它仍在运行。您会收到提示,因为正在生成新的

  • 问题内容: 我有一个Linux bash脚本“ myshell”。我希望它读取两个日期作为参数,例如:。我是Java程序员,但不知道如何编写脚本来完成此任务。 脚本的其余部分如下所示: 问题答案: 您在脚本中使用,例如