有时,在命令行工作时(特别是处理shell脚本时),您可能会发现自己处于一种情况,您必须执行操作,例如在字符串中搜索子字符串,找到其索引以及其他类似的东西执行比较和算术运算。
对于那些不了解的人,存在一个命令行实用工具(称为expr ),可以让您做到这一切。 在本教程中,我们将讨论此命令的基础知识及其提供的一些功能。 请注意,这里提到的所有示例和说明都已在Ubuntu 16.04LTS上进行了测试。
Linux expr命令
该工具的官方文档说它用于评估表达式。 以下是expr命令的语法:
expr EXPRESSION
expr OPTION
以下是一些Q&A风格的示例,它将为您提供有关该工具的工作原理。
Q1。 如何使用expr进行算术运算?
假设你想添加两个数字(比如说5和6),你可以使用expr来做这个:
expr 5 + 6
以上是上述命令:
所以你可以看出,产出中产生了'11'的总和。 请注意,操作员两侧的单个空格(在这种情况下为'+')是必需的。 否则,expr命令将产生以下输出:
这显然是错误的,而不是我们的期望。
类似地,减法操作可以以下列方式进行:
expr 15 - 6
这是一个例子:
expr 10 / 3
请注意,上述命令只能输出3。 如果您想查看其余部分,请使用%运算符。
expr 10 % 3
理想情况下,以下列方式实现乘法:
expr 10 * 3
但是这不行,因为*是一个内置的shell操作符。 因此,为了使其像乘法运算符一样,您需要以下列方式将其转换为转义字符:
expre 10 \* 3
Q2。 如何使用expr执行比较操作?
expr命令还允许您以各种方式执行比较操作。 例如,以下命令(下面的屏幕截图第三个)将返回ARG1,如果它既不为null也不为0,否则为ARG2。
请注意,管道之前的反斜杠用作转义字符,因为管道另外被视为内置shell运算符。
同样,您可以执行大量操作。 以下屏幕截图(从命令的手册页中取出)应该能够让您了解可以使用expr命令进行什么样的比较。
Q3。 如何使用expr执行与字符串相关的操作?
expr命令还允许您执行多个与字符串相关的操作。 例如,要查找字符串的长度,可以按照以下方式使用该工具:
expr length [string]
如果字符串包含空格,则需要使用转义字符。
继续,您也可以使用expr提取给定字符串中的子字符串。 这里是语法:
expr substr [string] [pos] [length]
例如,要从“youcl”获取“forge”,您可以按照以下方式使用该工具:
此外,您还可以使用expr查找给定字符串中的一组字符的起始索引。 这是它的语法
expr index [string] [chars]
例如,要在“youcl”中找到'wt'的索引,请使用expr,方法如下:
结论
您可能会同意,expr是一个功能丰富的命令,但易于理解和易于使用。 在这个教程中,我们已经尝试为您提供有关它提供的大部分基本功能的信息。 完成练习之后,您可以前往工具的手册页了解更多信息。