shell 里面的计算】的更多相关文章

本博客已经迁往http://www.kemaswill.com/, 博客园这边也会继续更新, 欢迎关注~ 数学计算是Shell中比较常用的一种操作,  但是因为shell中所有的变量都默认为字符串, 这就使得在shell中进行数学计算比较复杂, 以下直觉上貌似正确的方法是不对的: #第一种错误方法 $ var=+ #第二种错误方法 $ var= $ var=$var+ 以上两种方法的输出结果都是1+1 , 而不是我们期望的2 . 在shell中进行数学计算可以通过以下方法来进行: 1. decl…
---恢复内容开始--- 关于shell里面的计算其实早在接触LINUX的时候就已经接触到了.每次在运用的时候却是在网上到处找,所以觉得花点时间好好研究下. 首先了解下常用的算数运算符号: +  - 加法(正号),减法(负号) *  /  % 乘法,除法,取余 ** 幂运算 ++ -- 增加或者减少,可前置也可放在变量结尾 ! && || 逻辑非(取反).逻辑与(and),逻辑或(or) < <= > >= 小于,小于等于 大于 大于等于 == !=  = 比较符号…
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,这…
shell中的赋值和操作默认都是字符串处理. 1)使用let(只能进行整数运算)var=1let "var+=1"echo $var输出结果为2 注意:a)let几乎支持所有的运算符b)方幂运算应使用“**”c)参数在表达式中直接访问,不必加$d)一般情况下算数表达式可以不加双引号,但是若表达式中有bash中的关键字则需加上e)let后的表达式只能进行整数运算 2)使用(())var=1((var+=1))echo $var输出结果为2注意:(())的使用方法与let完全相同 3)使用…
有时在Linux操作系统中需要计算某个字符串的长度,通过查询资料整理了下目前Shell中获取字符串的长度的多种方法,在这里分享给大家,方法如下: 方法1: 使用wc -L命令wc -L可以获取到当前行的长度,因此对于单独行的字符串可以用这个简单的方法获取,另外wc -l则是获取当前字符串内容的行数. 代码如下: echo "abc" |wc -L 方法2: expr length string 使用expr length可以获取string的长度 方法3: awk获取域的个数,但是如果…
对于基本运算,可以使用let, $(())和$[] 对于高级运算,使用expr和bc这两个工具 [hupeng@hupeng-vm shell]$n1= [hupeng@hupeng-vm shell]$n2= [hupeng@hupeng-vm shell]$let res=n1+n2 #let的使用 [hupeng@hupeng-vm shell]$echo $res [hupeng@hupeng-vm shell]$let res=n1*n2 [hupeng@hupeng-vm shell…
1.计算学生平均分数的值是多少? 2.计算每门课都大于80分的学生姓名.3.计算每门课都小于90分的学生姓名.…
第一种方法,通过for循环来计算[root@localhost wyb]# cat yibai.sh #!/bin/bash #从1+++...100的结果 i= ` do sum=$(($sum+i)) i=$(($i+)) done +++...:$sum [root@localhost wyb]# bash yibai.sh +++...: 第二种方法,通过while循环来计算[root@localhost wyb]# cat whileyibai.sh #!/bin/bash #++++…
使用 expr命令 (其中做乘的时候*号要用斜杠进行转义) 除以 [hadoop-user@hadoop1]$ echo `expr 9 / 3`             3加 [hadoop-user@hadoop1]$ echo `expr 9 + 3`               12 减 [hadoop-user@hadoop1]$ echo `expr 9 - 3`               6 乘以 [hadoop-user@hadoop1]$ echo `expr 9 \* 3`…
大数据平台下经常建立设计多个节点的集群需要统一部署,这就设计到守护进程或者部署脚本在不同节点执行,如果能在master机器上,统一执行脚本,一次性启动整个集群的服务,感觉很nice.因为,分享如下内容: 前提条件: 配置ssh免密码登陆 对于简单的命令: 如果是在远端节点执行几个命令,则: ssh user@remoteNode "cd /home ; ls" 注意点: 双引号,必须有.如果不加双引号,第二个ls命令在本地执行 分号,两个命令之间用分号隔开 对于远端执行脚本的方式: 有…
[root@localhost mulu]# ls [root@localhost mulu]# `; do touch file$i; done real 0m0.104s user 0m0.012s sys 0m0.090s [root@localhost mulu]# ls file1 file13 file18 file22 file27 file31 file36 file40 file45 file5 file54 file59 file63 file68 file72 file77…
[root@localhost ~]# cat five.sh #!/bin/bash #任意输入5个数,判断最大值,最小值,总和 s= read -p "please input:" num s=$(($s+$num)) max=$num min=$num ` do read -p "please input:" num s=$(($s+$num)) if [ $num -le $min ];then min=$num fi if [ $num -ge $max…
[root@localhost wyb]# cat unevenjia.sh #!/bin/bash #从1+++...100的结果 i= count=$1 $count` do sum=$(($sum+i)) i=$(($i+)) done +++++...100等于:$sum [root@localhost wyb]# bash unevenjia. +++++...100等于: [root@localhost wyb]#…
[root@localhost wyb]# cat evenjia.sh #!/bin/bash #从0++++...100的结果 i= ` do sum=$(($sum+i)) i=$(($i+)) done ++++...100等于:$sum [root@localhost wyb]# bash evenjia.sh ++++...100等于:2550 [root@localhost wyb]# cat 2evenjia.sh #!/bin/bash #从2+++...100的结果 i= `…
year=44 1.let,不需要$引用变量 let m=year+3 echo $m 2.(()) m=$((year+3)) 3.[  ],注意两边一定要有空格 m=$[ year+3 ] 4. bc,可以实现高精度的运算:echo 3+4|bc m=$(echo ${year}+12|bc) 5. expr,一定要注意不要漏掉空格 m=`expr $year + 2`…
shell脚本中,可以进行数值计算, 如加减乘除,通过expr.let.(())等完成,文章介绍:http://blog.csdn.net/longshenlmj/article/details/14166193 但是上面的运算只支持整数. 小数计算怎么办? shell中小数计算 通过bc,awk和nawk工具等完成 使用bc的代码如: click=`awk -F"\t" '$1==2 {print $2}' ctr_result.txt` show=`awk -F"\t&q…
前面一节Shell篇之五 基本运算符介绍了常见的 Shell 算术运算符,这节介绍 Shell 的数学计算.Shell 和其它编程语言不同,Shell 不能直接进行算数运算,必须使用数学计算命令. 下面我们先来看一个反面的例子: #!bin/bash echo 2+8 a=23 b=$a+55 echo $b b=90 c=$a+$b echo $c 运行脚本: $ ./tesh.sh 2+8 23+55 从上面的运算结果可以看出,默认情况下,Shell 不会直接进行算术运算,而是把+两边的数据…
在shell脚本中计算一般会涉及到let.$(()).$[].bc(另扩展expr).其中let.$(()).$[]都是用来做基本整数运算,bc可以用来做浮点运算. (1).let.$(()).$[] 因为这三个基本等价,所以放在一起说明. 首先来看下let命令 [xf@xuexi ~]$ num=10 [xf@xuexi ~]$ echo $num 10 [xf@xuexi ~]$ let num=$num+6;echo $num 16 [xf@xuexi ~]$ let num=num-6;…
转自:http://blog.csdn.net/taiyang1987912/article/details/39529291 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 一.简介 Linux是一种用户控制的多作业操作系统,系统允许多个系统用户同时提交作业,而一个系统用户又可能用多个shell登录,每个系统用户可以用一个shell提交多个作业.了解Bash Shell在多作业管理和进程处理方面的命名和机制有助于理解多用户.多作业的系统. 二.详解 1.子Shell (…
参考文献: linux中shell截取字符串方法总结 [Linux]如何在Shell脚本中计算字符串长度? 截取字符串的方法一共有八种,主要为以下方法 shell中截取字符串的方法有很多中, ${expression}一共有9种使用方法. ${parameter:-word} ${parameter:=word} ${parameter:?word} ${parameter:+word} 上面4种可以用来进行缺省值的替换. ${#parameter} 上面这种可以获得字符串的长度. ${para…
一.学习 shell脚本之前的基础知识 [linux shell中的特殊符号] 1. * :代表零个或多个字符或数字. test后面可以没有任何字符,也可以有多个字符,总之有或没有都能匹配出来. 2. ? :只代表一个任意的字符 不管是数字还是字母,只要是一个都能匹配出来. 3. # :这个符号在linux中表示注释说明的意思,即”#”后面的内容linux忽略掉. 在命令的开头或者中间插入”#” ,linux都会忽略掉的.这个符号在shell脚本中用的很多. 4. wc :统计文档的行数.字符数…
8.1  先测试“/etc/vsftpd”.“/etc/hosts”是否为目录,并通过“$?”变量查看返回状态值,据此判断测试结果.[root@localhost ~]# [ -d /etc/vsftpd ][root@localhost ~]# echo $?0[root@localhost ~]# [ -d /etc/hosts ][root@localhost ~]# echo $?1[root@localhost ~]# ls -ld /etc/vsftpd /etc/hosts-rw-…
.巧用bash的{}扩展备份目录: cp file.txt{,.bak} .利用at执行一次性命令: echo "ls -l" | at midnight #Execute a command at a given time .kill - 或者 kill -HUP 一般用来重新读取配置文件:(一般程序自己实现的) HUP 其实就是给个信号,你的程序可以根据这个信号做一些事情,比如reload进程,或者是rotota日志.例如 squid.Nginx.xinetd. kill就是发送一…
使用以下shell 脚本来计算大页配置参数,确保使用脚本实例之前的数据已经开始, 如果数据库的版本号11g,确认是否使用自己主动的内存管理(AMM) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ #!/bin/bash # # hugepages_settings.sh # # Linux bash script to compute values fo…
部分引用自:https://blog.csdn.net/qq_22075977/article/details/75209149 一.概述 Shell是一种具备特殊功能的程序,它提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令,并把它送入内核去执行.内核是Linux系统的心脏,从开机自检就驻留在计算机的内存中,直到计算机关闭为止,而用户的应用程序存储在计算机的硬盘上,仅当需要时才被调入内存.Shell是一种应用程序,当用户登录Linux系统时,Shell就会被调入内存去执行.Shel…
终于到shell 脚本这章了,在以前笔者卖了好多关子说shell脚本怎么怎么重要,确实shell脚本在linux系统管理员的运维工作中非常非常重要.下面笔者就带你正式进入shell脚本的世界吧. 到现在为止,你明白什么是shell脚本吗?如果明白最好了,不明白也没有关系,相信随着学习的深入你就会越来越了解到底什么是shell脚本.首先它是一个脚本,并不能作为正式的编程语言.因为是跑在linux的shell中,所以叫shell脚本.说白了,shell脚本就是一些命令的集合.举个例子,我想实现这样的…
shell 四则运算:expr,let,bc,(()), 1.expr的用法: expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串. 详细使用方式:expr --help expr 表达式 表达式说明: 用空格隔开每个项: 用 / (反斜杠) 放在 shell 特定的字符前面: 对包含空格和其他特殊字符的字符串要用引号括起来 使用实例: 1.计算字串长度 > expr length "this is a test" 1…
while循环,使您能够重复执行一组命令,直到某些条件发生.它通常用于当你需要反复操纵的变量值. 语法 while command do Statement(s) to be executed if command is true done 这里Shell命令进行计算.如果结果值是 true,给定语句被执行.如果命令为 false,那么没有语句将不执行,程序将跳转到done语句后的下一行. 例子: 下面是一个简单的例子,使用while循环显示数字0到9: #!/bin/sh a=0 while…
centos  shell脚本编程2 if 判断  case判断   shell脚本中的循环  for   while   shell中的函数  break  continue  test 命令   第三十六节课 return用在函数中exit用在shell当中 直接退出整个脚本,整个子shell或当前shellbreak退出循环 上半节课 if 判断case判断shell脚本中的循环 下半节课 for whileshell中的函数breakcontinue 课程大纲(继续上节课的) 7. if…
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几乎支持所有的运算符,在网上看到一篇文章…