Shell脚本学习二:Shell中的算术运算

Linux中有四种算术运算,分别是expr,let,$[],$(())。

下面分别介绍一下这四种算术运算的使用方法

一、expr的用法

[[email protected] ~]# expr 1 + 2
3
[[email protected] ~]# expr 1 - 2
-1
[[email protected] ~]# expr 8 + 6
14
[[email protected] ~]# expr 8 - 6
2
[[email protected] ~]# expr 8 \* 6
48
[[email protected] ~]# expr 8 / 6
1
[[email protected] ~]# a=3
[[email protected] ~]# b=4
[[email protected] ~]# expr $a + $b
7

以上分别是expr做加减乘除运算的例子。

在使用expr做运算的时候,如果想要将运算结果赋值给另一个变量,就要像如下的操作那样。

[[email protected] ~]# a=`expr 2 + 3`
[[email protected] ~]# echo $a
5

下面说一下使用expr要注意的地方。

1、使用expr做运算的时候,算术和运算符之间要用空格分隔开,否则将不会进行运算

[[email protected] ~]# expr 1+2
1+2

2、在进行乘法运算的时候,*前面要接\转义,因为*在正则表达式里面代表匹配多个的意思

[[email protected] ~]# expr 2 * 3
expr: syntax error

二、let命令

[[email protected] ~]# let a=2+3
[[email protected] ~]# echo $a
5
[[email protected] ~]# let a=2-3
[[email protected] ~]# echo $a
-1
[[email protected] ~]# let a=2*3
[[email protected] ~]# echo $a
6
[[email protected] ~]# let a=2/3
[[email protected] ~]# echo $a
0
[[email protected] ~]# b=4
[[email protected] ~]# c=2
[[email protected] ~]# let a=$b/$c
[[email protected] ~]# echo $a
2

在使用let的时候,一般都需要将他们赋给一个变量来接受运算的结果。

let跟expr不一样,不需要再算数和运算符之间加空格。

三、$[]的使用

[[email protected] ~]# a=$[2+3]
[[email protected] ~]# echo $a
5
[[email protected] ~]# a=$[2-3]
[[email protected] ~]# echo $a
-1
[[email protected] ~]# a=$[2*3]
[[email protected] ~]# echo $a
6
[[email protected] ~]# a=$[2/3]
[[email protected] ~]# echo $a
0

四、$(())的使用

[[email protected] ~]# a=$((1+3))
[[email protected] ~]# echo $a
4
[[email protected] ~]# a=$((1-3))
[[email protected] ~]# echo $a
-2
[[email protected] ~]# a=$((1*3))
[[email protected] ~]# echo $a
3
[[email protected] ~]# a=$((1/3))
[[email protected] ~]# echo $a
0
时间: 2024-10-12 05:53:30

Shell脚本学习二:Shell中的算术运算的相关文章

Shell基础学习(二) Shell变量

1.数据类型: 字符串 数组 2.变量的命名规范: 只能以a-z或A-Z开头 中间不能有空格,可以使用_ 不能使用标点符号 不能使用shell的关键字 3.变量类型: 环境变量 局部变量 shell变量 4.字符串 字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号.单双引号的区别跟PHP类似. 单引号: 完全按引号中的内容输出,内部变量无效,转义字符也无效 双引号: 可以解析内部变量,可以出现转义字符 拼

shell脚本学习笔记系列--1

一.学好shell编程的知识储备 1.相关Linux系统命令应用: 2.Vi/vim 编辑器的熟练使用,相关客户端软件的设置: 3.基础的服务,系统服务ntp,crond,网络服务:nfs,rsync,inotify,sersync,ssh,lanmp等. 补充:清空日志的三种方法: 1)echo  " " > filename.log 2)>filename.log 3)cat  /dev/null > filename.log 注:工作中有的时候不能删除(日志)文

shell脚本练习题(更新中...)

练习题(这里贴的是自己写的代码, 网上给的题目代码我会附加在最下面) 1. 编写shell脚本,计算1-100的和: 1 #!/bin/bash 2 #caculate the sum of numbers from 1 to 100 3 4 sum=0 5 for i in `seq 1 100`; do 6 sum=$[$sum+$i] 7 done 8 echo $sum 2. 编写shell脚本,要求输入一个数字,然后计算出从1到输入数字的和,要求,如果输入的数字小于1,则重新输入,直到

笔记——shell脚本学习指南

<shell脚本学习指南>机械工业出版 ISBN 987-7-111-25504-8 第2章 2.4 初级陷阱 1.当今的系统,对#!这一行的长度限制从63到1024个字符都有,尽量不要超过64个字符. 2.在某些系统上,命令行部分包含了命令的完整路径名称.不过有些系统却不是这样:命令行的部分会原封不动地传递给被引用的程序. 3.别在选项之后放置任何空白,因为空白也会跟着选项一起传递给被引用的程序. 4.你需要知道解释其的完整路径名称.这可以用来规避可移植问题,因为不同的厂商可能将同样的东西放

shell脚本学习指南

以下八点不敢说就能成为你shell脚本学习指南de全部,至少可以让你编写出可靠的shell脚本. 1. 指定bash shell 脚本的第一行,#!之后应该是什么? 如果拿这个问题去问别人,不同的人的回答可能各不相同.我见过/usr/bin/env bash,也见过/bin/bash,还有/usr/bin/bash,还有/bin/sh,还有/usr/bin/env sh.这算是编程界的“’茴’字四种写法”了. 在多数情况下,以上五种写法都是等价的.但是,写过程序的人都知道:“少数情况”里往往隐藏

shell脚本学习与总结

shell脚本学习总结,东西很多,供初学者参考. shell脚本是区分大小写的. 2.Unix特殊字符有: ( ; $ ? & * () [] ` ' " + 使用其时要进行转义() 3.Shell的注释以#开头 4.函数的定义Function fuction_name(){ Command to execute} 调用时直接用function_name. 5.控制结构 1)If...then语句 If [ test_command ]    Then    Commandsfi2)If

shell脚本(二)

shell脚本(二)

shell脚本学习整理(二)

条件测试--test 或[ 命令"test"或"["可以测试一个条件是否成立,如果测试结果为真,则该命令的退出码为0,如果测试结果为假,则命令的退出码为1. 常见测试命令举例: note:左方括号[是一个命令的名字,传给命令的各参数之间应该用空格隔开,比如,$VAR.-gt.3.]是[命令的四个参数,它们之间必须用空格隔开.命令test或[的参数 形式是相同的,只不过test命令不需要]参数. 与.或.非的测试命令  [ ! EXPR ]  : EXPR可以是上述中

bash shell 脚本学习(二)

今天写第二个shell脚本,写一下<私房菜>里的课后题.该题需要写一个检查某一个名称是否存在,不存在则创建一个文件:存在则需要判断下该名称是否文件,是文件则删除后建一个同名目录,如果是目录则将此目录删除. 先设立一个基础条件:操作目录为/tmp/test/(注:如果此目录不存在则需要手动创建),需要建立的文件或目录名称为logical. 下边开始写脚本. #!/bin/bash #Program: #    This program to check if a filename exists