简介

  • expr命令

linux expr命令 详解

expr 是一个用于在命令行中进行基本的数学和字符串操作的工具。它用于对表达式求值,并输出结果。以下是关于 expr 命令的详细解释:

语法:

1
expr [选项] 表达式

常用选项:

  • LENGTH:计算字符串长度。
    1
    
    expr length "hello"
    
  • INDEX:查找子字符串在字符串中的位置(索引从1开始)。
    1
    
    expr index "abcdef" "cd"
    
  • MATCH:匹配字符串中的正则表达式。
    1
    
    expr match "12345" '\([0-9]\{3\}\)'
    
  • SUBSTR:提取字符串的子串。
    1
    
    expr substr "abcdefgh" 3 4
    
  • +:加法。
    1
    
    expr 2 + 3
    
  • -:减法。
    1
    
    expr 5 - 2
    
  • *:乘法。
    1
    
    expr 4 \* 3
    
  • /:除法。
    1
    
    expr 10 / 2
    
  • %:取余。
    1
    
    expr 10 % 3
    

示例用法:

  1. 计算表达式的值:
    1
    
    expr 2 + 3
    

    这将输出 5

  2. 计算字符串长度:
    1
    
    expr length "hello"
    

    这将输出 5

  3. 查找子字符串在字符串中的位置:
    1
    
    expr index "abcdef" "cd"
    

    这将输出 3,因为 “cd” 在字符串 “abcdef” 中的位置是3。

  4. 匹配字符串中的正则表达式:
    1
    
    expr match "12345" '\([0-9]\{3\}\)'
    

    这将输出 123,因为正则表达式匹配了字符串的前三个数字。

  5. 提取字符串的子串:
    1
    
    expr substr "abcdefgh" 3 4
    

    这将输出 cdef,提取了从位置3开始的4个字符。

工作原理:

expr 命令用于求值表达式,并输出结果。它支持数学运算、字符串操作和正则表达式匹配。

注意事项:

  • 在进行乘法运算时,需要使用转义字符 \*,以避免与 shell 中的通配符冲突。
  • 在进行字符串操作时,注意使用正确的语法和参数。

expr 是一个轻量级的命令,适用于一些基本的数学和字符串操作。对于更复杂的运算和处理,可能需要使用更强大的编程语言或工具。

linux expr命令 常用技巧

以下是一些在使用 expr 命令时的常用技巧:

  1. 使用反引号执行命令替换:
    1
    2
    
    result=`expr 5 + 3`
    echo $result
    

    使用反引号(``)或 $() 进行命令替换,将 expr 命令的输出赋值给变量。

  2. 避免空格错误:
    1
    
    result=$(expr 5+3)
    

    注意在运算符和操作数之间加上空格,以避免语法错误。

  3. 处理变量:
    1
    2
    3
    
    x=5
    y=3
    result=$(expr $x + $y)
    

    可以使用变量进行运算,确保在变量和运算符之间添加适当的空格。

  4. 比较数字:
    1
    2
    3
    
    if [ $(expr 5 -eq 5) -eq 1 ]; then
        echo "Equal"
    fi
    

    使用 expr 在 shell 脚本中进行数字比较。

  5. 处理字符串长度:
    1
    2
    
    str="hello"
    length=$(expr length "$str")
    

    使用 expr length 获取字符串的长度。

  6. 提取子字符串:
    1
    2
    
    str="abcdefgh"
    substr=$(expr substr "$str" 3 4)
    

    使用 expr substr 提取字符串的子串。

  7. 使用变量进行正则表达式匹配:
    1
    2
    
    str="12345"
    match=$(expr match "$str" '\([0-9]\{3\}\)')
    

    使用 expr match 对字符串进行正则表达式匹配。

  8. 处理浮点数:
    1
    
    result=$(echo "scale=2; 5 / 3" | bc)
    

    如果需要进行浮点数运算,可以使用 bc 命令。

这些技巧有助于更有效地使用 expr 命令,但需要注意的是,expr 主要适用于简单的数学运算和字符串操作,对于更复杂的需求可能需要其他更强大的工具。

expr

  • expr, 是一个手工命令行计数器,用于在Unix/Linux下求表达式变量的值,一般用于整数值,也可用于字符串
  • 语法:expr 表达式
  • 表达式说明:
    • 用空格隔开每个项
    • 用反斜杠\放在shell特定的字符前面
    • 对包含空格和其他特殊字符的字符串要用引号括起来

在Linux中,expr命令用于执行基本的数学运算和字符串操作。它可以计算表达式的值并输出结果。

以下是expr命令的一般语法:

1
expr expression

其中,expression是要计算的表达式。

以下是expr命令常见的用法示例:

  1. 计算两个数的和:
    1
    
    expr 10 + 5
    

    此命令将计算10和5的和,并输出结果15。

  2. 执行字符串连接:
    1
    
    expr "Hello" : "He" "llo"
    

    此命令将字符串”Hello”的前缀”He”与后缀”llo”连接起来,并输出结果”Hello”。

  3. 比较两个数的大小:
    1
    
    expr 10 ">" 5
    

    此命令将比较10和5的大小,如果10大于5,则输出结果1;否则输出结果0。

expr命令还支持其他一些运算符和操作,如减法、乘法、除法、求余等。它还可以用于处理字符串长度、子字符串提取、正则表达式匹配等操作。

请注意,expr命令的参数和操作符之间需要使用空格进行分隔。如果表达式中包含特殊字符,需要使用引号或转义字符进行处理。

expr命令在Shell脚本和命令行环境中执行简单的数学计算和字符串操作时非常有用。