shell编程之数学运算】的更多相关文章

shell数学运算支持整数运算的四种方法 1.let命令 no1=4; no2=5; let result=no1+no2 2.[]操作符 result=$[ no1 + no2] 3.(())操作符 result=$((no1 + no2)) 4.expr命令 result='expr 3 +4' 若要支持浮点型,需要通过管道的形式将运算表达式传给bc echo "4 * 0.56" | bc…
在Linux Shell中进行数学运算,通常能够使用的运算符有: 简单运算: let [] (()) 高级运算: expr bc 1.let命令 let命令是bash内置命令.能够实现简单的算术以及逻辑运算.通过help let命令,能够查询到let命令的详细使用方法. 使用方法: #!/bin/sh i=10 echo $i let i=i+10 #20 echo $i let "i=i+100" #120 echo $i 2.[] []相当于let命令,其使用方法例如以下: #!/…
http://blog.sina.com.cn/s/blog_6db275da0101asmf.html #!/bin/sh let a=$1+$2 b=$[$1+$2] ((c=$1+$2)) d=`expr $1 + $2` echo "$1+$2 = ${a}" echo "$1+$2 = $b" echo "$1+$2 = $c" echo "$1+$2 = $d" 输入命令:./plus 1 2 输出结果:1+2 =…
shell中要进行数学运算通常有3中方法: expr命令 比如 expr 1 + 6就会返回7,使用expr的缺点就是碰到乘法运算,或者加括号(因为它们在shell中有其他意义),需要使用转义,比如:expr \( 2 + 3\)  \* 5,这样就会使得表达式很难看 $[expression]命令 使用$[expression]命令也可以进行数学计算,并且比expr方便的是*和括号可以不用转义,比如仍然计算(2 + 3) * 5,可以直接写为: result=$[ (2 + 3) * 5 ]…
一,expr  太麻烦,看的脑壳疼 二,使用方括号 !!!! bash shell用这种方法只支持整数运算,z shell倒是支持浮点型运算 var_1= var_2= var_3= my_var_1=$[$var_/$var_2] echo $my_var_1 my_var_2=$[(var_1-var_3)/] echo $my_var_2 三,浮点解决方案 内建bash计算器bc #!/bin/bash my_var=$(bc <<EOF scale=4 #四位小数 var_1= var…
expr用法  expr命令一般用于整数值,但也可用于字符串.一般格式为:  expr argument operator argument  expr也是一个手工命令行计数器.  $expr 10 + 10  20  $expr 1500 + 900  2500  $expr 30 / 3  10  $expr 30 / 3 / 2  5  (注意运算符左右都有空格)  使用乘号时,必须用反斜线屏蔽其特定含义.因为shell可能会误解显示星号的意义.  $expr 30 * 3  90   1…
直接上代码. #!/bin/bash no1= no2= echo "using let ..." let result=no1+no2 echo "result is: ${result}" let result++ echo "result after 1 increment is: ${result}" let result+= echo "result after 6 increment is: ${result}"…
shell中的数学运算有三种方式: (1)let,用let的时候,变量名称前不用添加$ (2)[],[]中变量可使用也可不使用$ (3)(())变量名之前必须添加$…
变量和环境变量    var=value  给变量赋值,输出语句:$ echo $var或者是$ echo ${var},记住中间有个空格 例如:name="coffee" age="20" $echo "我的名字是:${name},年龄是:${age}" 在输出语句echo中可以在双引号中使用变量,但是如果是单引号那么变量不会扩展得到定义的值. 获取字符串的长度:${#var} //例如: name="yy" $echo $…
Linux Shell 数学运算 在Linux中直接使用数学运算符进行数学运算往往得不到我们想要的计算结果.要在Shell中进行数学运算,我们需要借助点小手段.目前,Linux Shell中进行数学运算的方法主要有三种:bc.expr.let. 1 bc 1.1 命令行方式 在bash界面,直接输入bc或者bc -q,就可以进去bc的命令行,通过使用数学运算符能够得到我们想要的结果: [scott@centos1 ~]$ bc -q + - - * / % ^ scale=;/ . % scal…
shell中的赋值和操作默认都是字符串处理,在此记下shell中进行数学运算的几个特殊方法.以后用到的时候能够来看,呵呵 1.错误方法举例 a) var=1+1 echo $var 输出的结果是1+1,悲剧,呵呵 b) var=1 var=$var+1 echo $var 输出结果是1+1.依旧悲剧,呵呵 2.正确方法 1)使用let var=1 let "var+=1" echo $var 输出结果为2.这次没有悲剧 注意: a)经我測试let差点儿支持全部的运算符,在网上看到一篇文…
1. 输出重定向 最基本的重定向是将命令的输出发送到一个文件中.在bash shell中用大于号(>) ,格式如下:command > inputfile.例如:将date命令的输出内容,保存到指定的输出文件中. 如果文件已存在,重定向操作符会用新的文件数据覆盖已有文件.这种情况下可以用双大于号(>>) 来追加数据.如下图所示: 2. 输入重定向 输入重定向和输出重定向正好相反.输入重定向是将文件的内容重定向到命令,而非将命令的输出重定向到文件. 输入重定向符号是小于号(<)…
字符串操作   变量赋值: 说明:变量值可以用单引号.双引号.或者不加任何引号来赋值给变量 变量名="变量值" 变量名='变量值' 变量名=变量值 例如:str="hello world" 注意:=左右不能有空格,否则会报错command not found 区别: 1.单引号的不能使用变量,$会被认为是个普通字符:字符串间可以有空格 2.双引号可以使用变量:字符串间可以有空格 3.不加任何引号的只能赋值连续的字符串,中间不能有空格,否则会报命令错误   字符串连接…
整数: expr let $(()) $[] 浮点数: bc 1.使用expr ♦参与运算的成员和运算符之间必须有一个空格: ♦对于那些容易被shell错解的,在它们传入expr命令之前,需要使用shell的转义字符(反斜线‘\’)将其转义. ♦要将一个数学式的运算结果赋给一个变量,需要使用命令替换来获取expr命令的输出: 我们写一个简单的shell 脚本如下: 看看运算结果:同样没有正确输出运算结果 我们修改脚本如下: 再来看运算结果:正确了 2.使用$[] ♦在bash shell中,在将…
shell编程系列5--数学运算 方法1 expr $num1 operator $num2 方法2 $(($num1 operator $num2)) expr操作符对照表1 操作符 含义 num1 | num2 num1不为空且非0,返回num1;否则返回num2 num1 & num2 num1不为空且非0,返回num1:否则返回0 num1 < num2 num1小于num2,返回1:否则返回0 num1 <= num2 num1小于等于num2,返回1:否则返回0 num1…
Abstract : 1)  Linux shell 中使用 let , [ ] ,(( )) 三种运算符操作 shell 变量进行简单的基本运算: 2)Linux shell 中使用 expr 与 bc 两个程序实现高级运算: 1, Linux shell 变量的基本运算 数值作为常规变量直接赋值给变量,并且以字符串形式保存. 1.1 let 命令可以用于直接执行基本操作:         当我使用 let 的时候,我们不使用 $ 符号引用变量. no1=7; no2=8; echo "---…
shell变量数学运算 #!/bin/sh # 本脚本说明shell脚本中变量运算的用法 # 错误的用法var=1var=$var+1echo $var 输出:1+1 # 第一种用法,letvar=1let "var+=1"echo $var 输出:2 # 也可以不加""let var=$var+1echo $var 输出:3 # 也可以不加$直接引用let var+=1echo $var 输出:4 # 方幂运算用**let var=var**2echo $var…
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 使用let.(()).$(())或$[]进行基本的整数运算,使用bc进行高级的运算,包括小数运算.其中expr命令也能进行整数运算,还能判断参数是否为整数,具体用法见expr命令全解. 其中let和(())几乎完全等价,除了做数学运算,还支持数学表达式判断,例如数值变量a是否等于3:let a==3或((a==3)),但一般不会使用它们来判断,而是使用test命令结合…
主要包括以下3种 字符串操作数学运算浮点运算 一.字符串操作 字符串的连接 连接字2个字符串不需要任何连接符,挨着写即可 长度获取 expr length "hello" expr length "$str" 变量名必须放在双引号里,否者语法错误 查找字符串中字符的位置 expr index "$str" CHARS 第一个是从1 开始的,查找不到返回 0 ,返回匹配到的第一个字符的位置 [root@localhost110 ~]# echo $…
数学运算之 expr expr操作符对照表 比较大小,只能对整数进行比较,需要加空格,linux 保留关键字要转义 num1=30 num2=50 expr $num1 \> $num2 查看上一条命令有没有执行成功 echo $? 返回0 成功,其他失败 小于.小于等于.大于等于 expr $num1 \< $num2 expr $num1 \<= $num2 expr $num1 \>= $num2 运算 加.减.乘.除 # 加 num1=17 num2=5 expr $num…
shell的数学运算 branches@ubuntu:~$ var1=$[ * ] branches@ubuntu:~$ echo $var1 branches@ubuntu:~$ var2=$[$var1 + ] branches@ubuntu:~$ echo $var2 branches@ubuntu:~$ var2=$[$var1+8.6] <==Bash Shell只能处理整数运算 -bash: +8.6: 语法错误: 无效的算术运算符 (错误符号是 ".6") shel…
shell中数学运算的易错点: 1.在 Bash Shell 中,如果不特别指明,每一个变量的值都是字符串,无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储.即使是将整数和小数赋值给变量,它们也会被视为字符串. 2.Shell 不能直接进行算数运算,必须使用数学计算命令!!默认情况下,Shell 会将+两边的数据(数值或者变量)当做字符串,把+当做字符串连接符,最终将两个字符串拼接在一起形成一个新的字符串. 3.Shell 中进行算数运算,必须使用数学计算命令!! Shell 中的算术…
在学习Linux BASH Shell编程的过程中,发现由于不经常用,所以很多东西很容易忘记,所以写篇文章来记录一下 ls   显示当前路径下的文件,常用的有 -l 显示长格式  -a 显示所有包括隐藏  -R 显示文件夹内的内容  -c 按照最后一次修改时间排序  -t 按照修改时间排序输出 echo 显示  -n 不换行 touch  创建一个文件,或者修改文件的访问时间和修改时间 touch -a file 只更改访问时间 -m之更改修改实际那 -t指定特定时间 cp  复制文件 -a 保…
shell作为一个人机交互的接口,在Linux中发挥着很大的作用,而shell编程则是减轻系统工程师工作的利器,这里总结一下shell编程的主要内容(趁着程序运行的空档). 本文的基本结构是shell编程的基本命令和常用的实例. 命令篇 环境变量 环境变量指的是当shell运行后,系统默认给shell传递的变量. $pwd:显示当前路径 $HOME:当前用户的主目录 $#:shell中参数的个数 $0:shell文件名 $1-$n:参数值 具体还有部分预设参数列表,见(此链接)[http://w…
我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行):   #!/bin/sh  ...  注意:最好使用“!/bin/bash”而不是“!/bin/sh”,如果使用tc shell改为tcsh,其他类似.   符号#!用来告诉系统执行该脚本的程序,本例使用/bin/sh.编辑结束并保存后,如果要执行该脚本,必须先使其可执行:   chmod +x filename  此后在该脚本所在目录下,输入 ./fi…
转自:http://my.oschina.net/itblog/blog/204410 1 语法基本介绍1.1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序.在这个例子中我们使用/bin/sh来执行程序.  当编辑好脚本时,如果要执行该脚本,还必须使其可执行.  要使脚本可执行: 编译 chmod +x filename 这样才能用./filename 来运行 1.2 注释  在进行shell编程时,以#开头的…
1.1 前言 1.1.1 为什么学Shell Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, Linux/UNIX系统的底层及基础应用软件的核心大都涉及Shell脚本的内容.每一个合格 的Linux系统管理员或运维工程师,都需要能够熟练地编写Shell脚本语言,并能够阅 读系统及各类软件附带的Shell脚本内容.只有这样才能提升运维人员的工作效率,适 应曰益复杂的工作环境,减少不必要的重复工作,从而为个人的职场发展奠定较好的基础 1.1.2 什么是shell…
原文地址:http://www.cnblogs.com/fhefh/archive/2011/04/13/2014967.html.感谢作者的无私分享 编写代码 在计划好要程序干什么以及如何使用程序的使用变得更加简单易学之后,程序员就必须以计算机能够理解的方式把他的想法记录下来,告诉计算机他想干什么.这就是要用到的所谓的代码.一般按照如下顺序组织自己的思维: 1. 决定让计算机做哪些任务 2. 确定计算机执行任务的顺序 3. 从shell脚本语言中选择适当的命令来执行那些任务 4. 用linux…
有两种方法可以将命令输出赋给变量 反引号字符(`) $()格式 命令替换允许你将shell 命令的输出赋给变量 要么用一对反引号把整个命令行围起来: testing=`data` 要么使用$()格式 testing=$(data) today=$(data+%y%m%d) 输出重定向(>)who > zjj(重定向操作符会用新的文件数据覆盖已有文件) 有时候不想覆盖原有的文件内容,可以使用>> 输入重定向(<) 执行数学运算 expr  1+5 使用方括号和美元符号 var=…
1.1 前言 1.1.1 为什么学Shell Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具, Linux/UNIX系统的底层及基础应用软件的核心大都涉及Shell脚本的内容.每一个合格 的Linux系统管理员或运维工程师,都需要能够熟练地编写Shell脚本语言,并能够阅 读系统及各类软件附带的Shell脚本内容.只有这样才能提升运维人员的工作效率,适 应曰益复杂的工作环境,减少不必要的重复工作,从而为个人的职场发展奠定较好的基础 1.1.2 什么是shell…