let与expr命令的用法与实战案例

let命令的用法

格式:

let 赋值表达式

【注】let赋值表达式功能等同于:(赋值表达式)

例子:给自变量i加8

1
2
3
4
5
6
7
8
[root@XCN ~]# i=2
[root@XCN ~]# let i=i+8
[root@XCN ~]# echo $i
10
[root@XCN ~]# i=i+8   #去掉let定义
[root@XCN ~]# echo $i
i+8      #输出的结果
提示:let i=i+8等同于((i=i+8)),但后者效率更高


expr命令的用法:

expr命令一般用于整数值,但也可用于字符串,用来表达式变量的值,同时expr也是一个手工命令行计算器。

语法:expr expression

1
2
3
4
5
6
7
8
[root@XCN ~]# expr 2 + 2
4
[root@XCN ~]# expr 2 - 2 
0
[root@XCN ~]# expr 2 * 2 
expr: syntax error
[root@XCN ~]# expr 2 \* 2  #*号用/来转义
4

提示: 

  1. 注意:运算符左右都有空格

  2. 使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解星号的含义


增量计数:

expr在循环中可用于增量计算。首先,循环初始化为0,然后循环值加1,反引号的用法为命令替代,最基本的一种是从(expr)命令接受输出并将之放入循环变量。

例:给自变量i加1

1
2
3
4
[root@XCN ~]# i=0
[root@XCN ~]# i=`expr $i + 1`
[root@XCN ~]# echo $i
1

expr$[$a+$b]表达式形式,其中$a$b可为整数值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@XCN ~]# expr $[2+3]
5
[root@XCN ~]# expr $[2*3] 
6
[root@XCN ~]# expr $[2**3]
8
[root@XCN ~]# expr $[2/3]  
0
[root@XCN ~]# expr $[2%3] 
2
[root@XCN ~]# a=5        
[root@XCN ~]# b=6
[root@XCN ~]# expr $[$a+$b]
11
#expr将其后的串解释为表达式并计算其值,运算符前后需有空格

expr 特殊用法:

expr判断扩展名脚本

1
2
3
4
5
6
7
8
9
10
#!/bin/bash
if expr "$1" ".*\.pub" &>/dev/null  #判断传递参数扩展名是否为pub
then
    echo "you are using $1"
else
    echo "pls use *.pub file"
fi
   
 #expr id_dsa.pub:`.*\.pub`,匹配*.pub格式的文件如果是则为真。离:

expr判断是非整数


#!/bin/bash

1
2
3
4
5
6
7
expr 1 + $1 &>/dev/null
if [ $? -eq 0 ]
then
  echo "zhengshu"
else
  echo "feizhengshu"
fi


本文转自 baishuchao 51CTO博客,原文链接:http://blog.51cto.com/baishuchao/1941056


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/393101.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在使用ToolBar + AppBarLayout,实现上划隐藏Toolbar功能,遇到了一个坑。

问题:Android5.0以下版本Toolbar不显示沉浸式状态栏,没有这个问题,但是5.0以上版本,就出现了莫名其妙的阴影问题,很是头疼。 分享一下我的解决方案: 在AppBarLayout中加一个属性: app:elevation…

leetcode1476. 子矩形查询

请你实现一个类 SubrectangleQueries ,它的构造函数的参数是一个 rows x cols 的矩形(这里用整数矩阵表示),并支持以下两种操作: updateSubrectangle(int row1, int col1, int row2, int col2, int newValue) 用 new…

msbuild构建步骤_如何按照以下步骤构建最终的AI聊天机器人

msbuild构建步骤by Paul Pinard保罗皮纳德(Paul Pinard) 如何按照以下步骤构建最终的AI聊天机器人 (How to build the ultimate AI chatbot by following these steps) 快速指南,可帮助您避免常见的陷阱 (A quick guide that helps you avoid common pitfalls) Bui…

第一章:最小可行区块链

概览区块数据结构区块哈希创世块创建区块保存区块链验证区块完整性选择最长链节点间通信操作节点架构运行测试小结概览 区块链的基础概念非常简单, 说白了就是一个维护着一个持续增长的有序数据记录列表的这么一个分布式数据库。在此章节中我们将实现一个简单的玩具版的区块链。…

Oracle Controlfile控制文件中记录的信息片段sections

初学Oracle的朋友肯定对Controlfile控制文件中到底记录了何种的信息记录而感到好奇,实际上我们可以通过一个视图v$controlfile_record_section来了解控制文件的信息片段: SQL> select type, record_size, records_total from v$controlfile_record_s…

linux 怎么禁止遍历目录,linux下遍历目录功能实现

/*编译:dir:dir.cgcc -o $ $<*/#include #include #include #include #include int do_search_dir(char *path);int do_check_dir(char *fullpath, char* truefullpath);void usage(char *apps);int count 0;intmain(int argc,char **argv){char fullpath[…

leetcode面试题 16.26. 计算器(栈)

给定一个包含正整数、加()、减(-)、乘(*)、除(/)的算数表达式(括号除外)&#xff0c;计算其结果。 表达式仅包含非负整数&#xff0c;&#xff0c; - &#xff0c;*&#xff0c;/ 四种运算符和空格 。 整数除法仅保留整数部分。 示例 1: 输入: “32*2” 输出: 7 代码 clas…

团队项目电梯会议视频

http://v.youku.com/v_show/id_XMjcyMjI3Mjk2NA.html?spma2hzp.8244740.userfeed.5!2~5~5~5!3~5~A转载于:https://www.cnblogs.com/jingxiaopu/p/6749776.html

arduino服务器_如何使用Arduino检查Web服务器的响应状态

arduino服务器by Harshita Arora通过Harshita Arora 如何使用Arduino检查Web服务器的响应状态 (How to use Arduino to check your web server’s response status) Last year, I created Crypto Price Tracker (an app which was acquired by Redwood City Ventures this yea…

leetcode486. 预测赢家(dp)

给定一个表示分数的非负整数数组。 玩家 1 从数组任意一端拿取一个分数&#xff0c;随后玩家 2 继续从剩余数组任意一端拿取分数&#xff0c;然后玩家 1 拿&#xff0c;…… 。每次一个玩家只能拿取一个分数&#xff0c;分数被拿取之后不再可取。直到没有剩余分数可取时游戏结束…

linux怎么看文件状态,linux查看文件类型-file、状态-stat

linux查看文件类型-file、状态-stat首页 计算机相关 linux命令 linux查看文件类型-file、状态-statfile 命令可以用来查看文件类型-i mime type-s 读取字符或块设备文件最好指定[root192 tmp]# file freeclsfreecls: UTF-8 Unicode text[root192 tmp]# file -i freeclsfreecls:…

Linux课程笔记 Crond介绍

1. 定时任务比较及cron语法 Linux的任务调度可以分为两类&#xff1a; 系统自身执行的任务用户执行的工作Linux系统下另外两种定时任务软件&#xff1a; at&#xff1a;适合仅执行一次的调度任务&#xff0c;需要启动一个名为atd的服务 anacron&#xff1a;这个命令主要用于非…

Python 学习日记第二篇 -- 列表,元组

一、列表 列表是一个可以包含所以数据类型的对象的位置有序集合&#xff0c;它是可以改变的。 1、列表的序列操作&#xff08;Python3&#xff09; 123456789101112131415161718192021222324>>> one_list [1,2,3,4]>>> two_list ["jonny","…

【Gamma】PhyLab 测试报告

PhyLab Gamma测试报告 测试中发现的bug Gamma阶段新Bug Bug可能原因部分错误码设置与原先抛异常的逻辑冲突原先代码中使用了一些特殊的办法处理异常Beta未发现Bug Bug可能原因控制台新建实验编号不能以0开头后端处理编号会将其前导0去除&#xff0c;以数字形式存储&#xff0c;…

如何使用Node.js,Express和MongoDB设置GraphQL服务器

by Leonardo Maldonado莱昂纳多马尔多纳多(Leonardo Maldonado) 如何使用Node.js&#xff0c;Express和MongoDB设置GraphQL服务器 (How to set up a GraphQL Server using Node.js, Express & MongoDB) 从GraphQL和MongoDB开始的最直接的方法。 (The most straightforward…

leetcode954. 二倍数对数组(treemap)

给定一个长度为偶数的整数数组 A&#xff0c;只有对 A 进行重组后可以满足 “对于每个 0 < i < len(A) / 2&#xff0c;都有 A[2 * i 1] 2 * A[2 * i]” 时&#xff0c;返回 true&#xff1b;否则&#xff0c;返回 false。 示例 1&#xff1a; 输入&#xff1a;[3,1,…

linux文件内容打印成二进制,如何在二进制文件中只打印可打印字符(相当于Linux下的字符串)?...

在Python3中&#xff0c;以二进制模式打开文件会得到bytes的结果。迭代一个bytes对象可以得到0到255(包括0到255)的整数&#xff0c;而不是字符。从^{} documentation&#xff1a;While bytes literals and representations are based on ASCII text, bytes objects actually b…

1098 均分纸牌

1098 均分纸牌 2002年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description有 N 堆纸牌&#xff0c;编号分别为 1&#xff0c;2&#xff0c;…, N。每堆上有若干张&#xff0c;但纸牌总数必为 N 的倍数。可以在任一堆上取若于张纸…

轻松学习分布式|系列3|分布式数据库。

我们继续来讲分布式&#xff0c;回到我们的创业游戏。 我们的业务规模上来了&#xff0c;客户也越来越忠诚了。很多客户都通过我们的订票服务&#xff0c;来方便自己的行程。 那对这些老客户&#xff0c;我们的宗旨是&#xff1a;要不断超越客户的期待。 所以&#xff0c;我们要…

量子运算 简单通俗例子_什么是量子计算机? 用一个简单的例子解释。

量子运算 简单通俗例子by YK Sugi由YK Sugi 什么是量子计算机&#xff1f; 用一个简单的例子解释。 (What is a quantum computer? Explained with a simple example.) Hi everyone!嗨&#xff0c;大家好&#xff01; The other day, I visited D-Wave Systems in Vancouver…