expr命令用法-实例讲解

2023-11-08

expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串。
–格式为:
expr Expression(命令读入Expression 参数,计算它的值,然后将结果写入到标准输出)
–参数应用规则:
用空格隔开每个项;
用 / (反斜杠) 放在 shell 特定的字符前面;
对包含空格和其他特殊字符的字符串要用引号括起来

–expr用法实例讲解:
(1)、计算字串长度
 > expr length “this is a test”
 14
(2)、抓取字串
 > expr substr “this is a test” 3 5
 is is
(3)、抓取第一个字符数字串出现的位置
 > expr index “sarasara”  a
 2
(4)、字串真实重现
 > expr quote sara
 sara
(5)、整数运算
 > expr 14 % 9
 5
 > expr 10 + 10
 20
 > expr 1000 + 900
 1900
 > expr 30 / 3 / 2
 5
 > expr 30 /* 3 (使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义)
 90
 > expr 30 * 3
 expr: Syntax error
(6)、增量计数
说明:expr在循环中用于增量计算。先将变量初始化为0,然后循环值加1,反引号的用法为命令替代。
> LOOP=0
> LOOP=`expr $LOOP + 1`
(7)、数值测试
说明:用expr测试一个数。如果试图计算非整数,则会返回错误。
> rr=3.4
> expr $rr + 1
expr: non-numeric argument
> rr=5
> expr $rr + 1
6
(8)、模式匹配
说明:expr也有模式匹配功能。可以使用expr通过指定冒号选项计算字符串中字符数。.*意即任何字符重复0次或多次。
> VALUE=account.doc
> expr $VALUE : ‘.*’
8
在expr中可以使用字符串匹配操作,这里使用模式抽取.doc文件附属名。
$expr $VALUE : ‘/(.*/).doc’
accounts

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

expr命令用法-实例讲解 的相关文章

  • 选择多个模式的 awk 代码

    这是我的输入文件 比如modified txt r4544 n479826 2012 08 28 07 12 33 0400 Tue 28 Aug 2012 1 line Changed paths M branches 8 6 0 con
  • bash.sh 运行 cron 的权限被拒绝

    如何在这里使用 bash 脚本运行 cron 我做了如下操作 这里有错误 我想知道如何在 ubuntu 中做到这一点 我现在对它感到震惊 bash sh 文件 bin bash cd var www Controller usr bin p
  • 了解 IServiceProvider 和 QueryService

    谁能解释一下背后的想法IServiceProvider and QueryService 我不明白服务是什么以及它与其他类型的对象或接口有何不同 我看到的解释很少 主要是一些评论here https learn microsoft com
  • 如何在 Emacs shell 缓冲区中获得对“✖”等的支持?

    我正在运行一个进程 如果出现错误 则输出字符 如 Unicode 中定义 但是 如果在 Emacs shell 缓冲区 GNU Emacs 的 Aquamacs 发行版 中运行该进程 我根本看不到错误 使用 braeburn aquamac
  • 从 Jenkins Pipeline 捕获 shell 脚本输出

    我正在尝试提取 git 分支并在 Jenkinsfile 中提交信息 如下所示 def commit sh returnStdout true script git rev parse HEAD trim def branch sh ret
  • 如何将发布档案转换为 git repo

    我有一个发布档案列表 MyProject 0 9 zip MyProject 1 0 zip MyProject 1 3 tar gz MyProject 2 0 tar gz 每个文件都包含一个与存档同名的文件夹 不带文件扩展名 其中包含
  • 在 bash 脚本中设置变量[重复]

    这个问题在这里已经有答案了 test sh 包含 A 1 B 2 我将 test sh 设置为 chmod 777 我用两个参数启动脚本 test sh first last 然后我通过输入以下内容对其进行了测试 echo FirstVar
  • 如何让 Jenkins 2.0 在与结帐相同的目录中执行 sh 命令?

    这是我的 Jenkins 2 x 管道 node master stage Checkout checkout scm stage Build Pex sh build sh 当我运行此管道时 签出会按预期将代码放入工作区 但是它并没有期望
  • 在 unix bash 脚本中可以嵌套 Here Document 吗?

    是否可以在另一个heredoc中编写一个heredoc ssh T q yxz server1 lt lt END TEXT ssh T q abc server2 lt lt SUB TEXT SUB TEXT END TEXT Yes
  • 使用 find 和 xargs 交互删除文件

    我正在尝试将一些文件从 find 命令传输到交互式删除命令 以便我可以仔细检查要删除的文件 但我遇到了一些麻烦 find name print0 xargs 0 rm i 我认为上面的方法可行 但我只得到一串 rm remove regul
  • 何时用引号将 shell 变量括起来?

    我应该或不应该在 shell 脚本中用引号括住变量吗 例如 下列说法正确的是 xdg open URL eq 2 or xdg open URL eq 2 如果是这样 为什么 一般规则 如果它可以为空或包含空格 或实际上任何空格 或特殊字符
  • Git - 显示远程分支的远程名称

    是否有一个 Git 命令可以显示远程分支的远程名称 目前 我坚持使用 shell utils 从远程分支引用中提取远程名称 例如 echo remote name branch name sed r s 1 remote name 有时出于
  • system 和 shell_exec 之间的区别

    有什么区别shell exec and systemPHP 中的方法 两者都采用单个命令行参数并在 PHP 中运行 使用其中一种比另一种更好吗 请参阅此处的解释 http chipmunkninja com Program Executio
  • unix 下日期字段排序

    我有包含数十万条记录的文本文件 其中一个字段是日期字段 有没有办法根据日期字段对文件进行排序 09 APR 12 04 08 43 632279000 AM 19 MAR 12 03 53 38 189606000 PM 19 MAR 12
  • VBA Shell 并等待退出代码

    我正在打包一个办公应用程序 VBA 它调用 C 控制台应用程序来执行应用程序 大型模拟程序 的一些繁重工作 我希望能够让 VBA 应用程序等待控制台应用程序完成并从控制台应用程序检索退出代码 我已经能够做到前者 但尚未能够从应用程序中检索退
  • 在压缩存档内的文本文件上运行“head”,而不解压存档

    问候 我接手了之前的团队并编写了处理 csv 文件的 ETL 作业 我在 ubuntu 上结合使用 shell 脚本和 perl csv 文件很大 它们以压缩档案形式到达 解压后 很多都超过 30Gb 是的 那是 G 旧进程是在 cron
  • 在 bash 中添加(收集)退出代码

    我需要依赖于脚本中的几个单独的执行 并且不想将它们全部捆绑在一个丑陋的 if 语句中 我想使用退出代码 每次执行并添加它 最后 如果这个值超过阈值 我想执行一个命令 伪代码 ALLOWEDERROR 5 run something RESU
  • 关键字“if”如何测试一个值是真还是假?

    在 bash 脚本中 if 1 then echo Yes else echo No fi Output Yes 它表示 1 被视为真值 但在代码中 word Linux letter nuxi if echo word grep q le
  • Bash:递归复制命名文件,保留文件夹结构

    我希望 cp R src prog js images icon jpg tmp package 将在目标目录中产生对称结构 tmp package src prog js images icon jpg 但相反 这两个文件都被复制到 tm
  • shell中如何分割字符串

    我有一个变量作为 string ABC400p2q4 我怎样才能分开ABC400 and p2q4 我需要将它分成两个变量 结果我得到 echo var1 ABC400 echo var2 p2q4 可以用任何字母字符代替 ABC 可以用任

随机推荐

  • 永磁同步电机矢量控制(九)——三闭环位置控制系统

    恰饭一下 已经过了工作的年纪 在这里稍微出一下自己做的一套永磁同步电机的教程 为了解决电机控制入门难的问题 我将自己从一知半解到现在的学习记录整理成十个部分学习教程 从基础的矢量控制 到应用性较强的MTPA 弱磁控制等 最后深入到无速度传感
  • k8s初级实战13--资源限制

    k8s初级实战13 资源限制 1 介绍 2 资源限制用法 2 1 内存限制 2 2 cpu限制 2 3 命名空间配额 2 4 pv容量限制 3 注意事项 4 说明 1 介绍 k8s 中常见的资源限制包括 内存 cpu pv容量 pod数量等
  • C# Lock锁

    lock 关键字可以用来确保代码块完成运行 而不会被其他线程中断 它可以把一段代码定义为互斥段 critical section 互斥段在一个时刻内只允许一个线程进入执行 而其他线程必须等待 这是通过在代码块运行期间为给定对象获取互斥锁来实
  • 如何安装nvm(nvm 安装教程)

    如何安装nvm nvm 安装教程 一 nvm是什么 nvm是一个node的版本管理工具 可以简单操作node版本的切换 安装 查看等等 与npm不同的是 npm是依赖包的管理工具 二 安装nvm 1 nvm下载地址 https github
  • NDk AndRoid

    史上最全系列之开发环境搭建之NDK 2 作者 sk 更新于 06月01日访问 3432 评论 29 前言 由于Monica 小MM 一篇 史上最全Android开发环境搭建 一下子就包含了jdk android sdk ADT 等都包含了下
  • SpringBoot AOP @AfterThrowing+自定义注解+自定义异常使用

    简介 利用SpringBoot AOP在程序抛出异常时执行对应的操作 在需要的方法上打上自定义的注解 在切面中进行配置 切面接收的参数就是就是抛出的异常 自定义异常存放数据 适合抛出异常后要进行操作的情况 自定义注解 Target Elem
  • tf.multinomial()/tf.random.categorical()用法解析

    tf multinomial tf random categorical 用法解析 首先说一下 tf multinomial 在tensorflow2 0版本已经被移除 取而代之的就是tf random categorical 网上的很多博
  • 常用群体药动学模型评价方法:诊断图

    诊断图 分类 基于预测的模型诊断图 基于残差的模型诊断图 基于贝叶斯估算的模型诊断图 基于预测的模型诊断图 呈现实际观测值与群体 个体预测值的一致性 反映模型对于实测值的拟合程度 1 因变量 群体预测值 DV PRED 绘图 参考线 趋势线
  • SFB 项目经验-67-Exchange 2016删除指定主题邮件

    问题描述 1 员工错发群邮件 2 员工乱发群邮件 3 BOSS要求你批量删除错发群邮件或者乱发邮件 解决方法 通过网络搜索 再结合客户环境测试成功后 精简后的方法 1 使用search mailbox命令搜索后再删除的操作 可以实现邮件的删
  • sql 查询id最大的数据记录

    SELECT money consume type business id transaction log id FROM account consume records where id select max id from accoun
  • Qt入门(4)——Qt常见控件

    Qt提供了大量的内建控件及通用对话框可满足程序员的绝大部分要求 我们将对这些控件和对话框作一个大概的介绍 1 QLabel 定义 cpp view plain copy QLabel m labelOrdered newQLabel 0 t
  • Python:数据类型list的基本操作,list嵌套数组简述

    转自 北京图灵学院刘大拿 https study 163 com course introduction htm courseId 1004987028 后续补充来源 Python 廖雪峰 https www liaoxuefeng com
  • 求单链表长度(C语言)

    include
  • sublime text3打开文件,中文乱码问题解决办法

    一 首先要确保本机sublime已经有安装包管理器 如果没有 安装方法 http blog chinaunix net uid 12014716 id 4269991 html 文中的第一步 安装包管理器 二 安装乱码处理插件 调用ctrl
  • Linux下JDK安装及配置 (tar.gz版)

    安装环境 Linux JDK安装 tar gz为解压后就可以使用的版本 这里我将使用jdk 8u65 linux x64 tar gz版 安装到 usr java 下 步骤一 将文件jdk 8u65 linux x64 gz移动到 usr
  • 惯导系列(二):应用于惯性导航的滤波算法(最近在修正)

    前言 我又消失了一段时间 这段时间研究了惯性导航有关的算法 整理了不少博客 字数比较多 图片比较多 学到了很多知识 2023 8 5补充 惯性导航的滤波算法比较复杂 分析起来很难以理解 IMU滤波要考虑两种实际应用场所 一是分析惯导的姿态
  • 【GPU Gems 学习笔记】Implementing Improved Perlin Noise

    柏林噪声 柏林噪声算法 Perlin Noise 是Ken Perlin在1983年提出的一种渐变噪声 和完全随机的白噪声相比 柏林噪声做到了杂乱而有序 能够更好地模拟自然界中的随机现象的复杂性和相互间的关联性 常被用于电影视觉效果 a 一
  • dotnet跨域问题之预检请求的重定向

    浏览器模式是不允许预检请求的重定向的 redirect for a preflight request 场景 前后端分离情况下 不同域名的应用 当前端去dotnet core的web api接口中取数据时 出现了错误 跨域错误 错误的大概意
  • 使用Pandoc在命令行中转换文件

    Pandoc是用于将文件从一种标记语言转换为另一种标记语言的命令行工具 标记语言使用标签来注释文档的各个部分 常用的标记语言包括Markdown ReStructuredText HTML LaTex ePub和Microsoft Word
  • expr命令用法-实例讲解

    expr命令是一个手工命令行计数器 用于在UNIX LINUX下求表达式变量的值 一般用于整数值 也可用于字符串 格式为 expr Expression 命令读入Expression 参数 计算它的值 然后将结果写入到标准输出 参数应用规则