shell-变量的数值计算2

let命令的用法

[[email protected] shell]# i=2

[[email protected] shell]# let i=i+8

[[email protected] shell]# echo $i

10

[[email protected] shell]# i=i+8

[[email protected] shell]# echo $i

10+8

[[email protected] shell]#

从上面可以看出如果没有用let的话,是不会计算的,就把我们的计算公式看成一个字符串来用

expr命令的用法

expr命令一般用于整数值,但也可用于字符串,用来求表达式变量的值,同时expr也是一个手工命令行计算器也就是说它自己本身就有计算功能的,如图

[[email protected] shell]# expr 2 - 2

0

[[email protected] shell]# expr 2 + 2

4

[[email protected] shell]# expr 2 \* 2

4

[[email protected] shell]# expr 2 \/ 2

1

[[email protected] shell]# expr 2 \% 2

0

[[email protected] shell]#

一般在shell里面的用法也是这样的

[[email protected] shell]# result="$(expr 3 + 4)"

[[email protected] shell]# echo $result

7

注意:运算符左右都有空格的,使用符号的时候最好给反斜线屏蔽其特定含义

在循环中可用于增量计算,不过一般我们用let命令,如果你用[]的话可以不用空括号

[[email protected] shell]# expr $[2+3]

5

[[email protected] shell]# expr $[4+5]

9

expr可以用来判断某个文件是不是某个后缀的,如

[[email protected] shell]# expr "id_dsa.pub" : ".*.pub"

10

如果是pub后缀就会输出这个文件名字符串的长度。如果不是的话就会输出0

可以判断变量是否为整数,如图

[[email protected] shell]# cat compute.sh

#!/bin/bash

read -p "please input:" a

expr $a + 0 &>/dev/null

[ $? -eq 0 ] && echo int || echo chars

[[email protected] shell]# sh compute.sh

please input:a

chars

[[email protected] shell]# sh compute.sh

please input:1

int

[[email protected] shell]#

bc命令的用法

bc是unix下的计算器,它也可以用在命令行下面,bc支持科学计算,所以经常用,一般的用法如下

[[email protected] shell]# echo 5.1+5|bc

10.1

[[email protected] shell]# echo 5.1+10|bc

15.1

[[email protected] shell]# seq -s "+" 100|bc

5050

[[email protected] shell]#

scale是指保留小数点后几位

obase是把十进制转换为二进制

[[email protected] shell]# echo "scale=2;5.23/3.13"|bc

1.67

[[email protected] shell]# echo "scale=3;5.23/3.13"|bc

1.670

[[email protected] shell]# echo "obase=2;8"|bc

1000

bc的特点是支持小数运算。

可以看看著名的杨辉三角(主要看第一种就可以啦)

http://oldboy.blog.51cto.com/2561410/756234

时间: 2024-10-03 22:55:10

shell-变量的数值计算2的相关文章

《跟老男孩学Linux运维之shell编程实战》-第四章 变量的数值计算

本文讲解shell编程中变量的数值计算. 1.常见的算术运算符: 提示: 此处对于我自己来说++.--比较难理解,之前一看到脚本中有这些符号,就看不懂了,所以在此举例说明一下: [[email protected] ~]# a=10                  ==>定义变量a[[email protected] ~]# echo $((a++)) ==>如果a在运算符++或--的前面,那么输出整个表达式时,会输出a的值, 此前定义的变量a为10,所以此处的值为10.10[[email 

shell基础--变量的数值计算

变量的数值计算 1.$((表达式)) (1).实验1 [[email protected]~_~ day4]# cat test.sh #!/bin/bash a=6 b=2 echo "a-b=$(($a-$b))" echo "a+b=$(($a+$b))" echo "a*b=$(($a*$b))" echo "a/b=$(($a/$b))" echo "a%b=$(($a%$b))" echo &q

awk中使用shell变量

其实在awk里,是不能直接使用shell变量的 方法是:awk -v 选项让awk 里使用shell变量 TIME=60 awk -v time="$TIME" 'BEGIN{FS="|"} {if ($7>time) print $2 }' 这样要注意:在awk里,time不能加$符号. 网上说如下方法都可行: 一:"'$var'" 这种写法大家无需改变用'括起awk程序的习惯,是老外常用的写法.如: var="test&quo

8.6 管道符和作业控制 8.7/8.8 shell变量 8.9 环境变量配置文件

8.6 管道符和作业控制 8.7/8.8 shell变量 8.9 环境变量配置文件 扩展 bashrc和bash_profile的区别 http://ask.apelearn.com/question/7719 # 8.6 管道符和作业控制 ![mark](http://oqxf7c508.bkt.clouddn.com/blog/20170816/214503952.png?imageslim) - 管道符的命令就是把前面输出的结果交给后面的命令 ``` [[email protected] 

Linux学习日记—使用Shell变量

Shell变量用来存放系统和用户需要使用的特定参数(值),而且这些参数可以根据用户的设定或系统环境的变化而相应的变化. [变量的作用] 为灵活管理Linux系统提供特定参数,而有两层意思: 1.变量名:使用固定的名称,由系统预设或用户自定义 2.变量值:能够根据用户设置,系统环境的变化而变化 [变量的类型] 1.自定义变量:由用户自己定义,修改和使用 2.环境变量:由系统维护,用于设置工作环境 3.位置变量:通过命令行给脚本程序传递参数 4.预定义变量:Bash中内置一类变量,不能直接修改 [自

Linux下如何让 awk 使用 Shell 变量

当我们编写 shell 脚本时,我们通常会在脚本中包含其它小程序或命令,例如 awk 操作.对于 awk 而言,我们需要找一些将某些值从 shell 传递到 awk 操作中的方法.那么如何让 awk 使用 Shell 变量呢?兄弟连Linux培训接下来为大家介绍一下: 有两种可能的方法可以让 awk 使用 shell 变量: 1. 使用 Shell 引用 让我们用一个示例来演示如何在一条 awk 命令中使用 shell 引用来替代一个 shell 变量.在该示例中,我们希望在文件 /etc/pa

shell变量day01

变量 定义变量your_name="runoob.com" #变量名和等号之间不能有空格 使用变量your_name="qinjx"echo $your_nameecho ${your_name}echo "I am good at ${skill}Script"echo "I am good at ${skillScript}"加花括号是为了帮助解释器识别变量的边界 your_name="tom"your

三、Shell变量类型和运算符

一.Shell变量的应用 1.Shell变量的种类 ·用户自定义变量:由用户自己定义.修改和使用     ·预定义变量:Bash预定义的特殊变量,不能直接修改 ·位置变量:通过命令行给程序传递执行参数 2.变量的赋值与引用 ·定义新的变量 变量名要以英文字母或下划线开头,区分大小写 格式:变量名=变量值 · 查看变量的值 格式:echo $变量名 echo  "my name is $name" echo  "my name is ${name}bd" ·从键盘输入

shell变量的替换,命令的替换,转义字符

1,shell变量的替换 变量可以根据变量是否为空或者被删除,而被替换为特定的值 ${var}  变量本来的值 $(var:-word)   如果变量为空,或者已被删除那么返回word,但是不改变var的值 name="xiaoming" echo "xiaoming 's age is ${age:-12}" ech   "age = ${age}" >>>>>>>> xiaoming 's ag

linux中shell变量$#,[email protected],$0,$1,$2的含义解释

摘抄自:ABS_GUIDE 下载地址:http://www.tldp.org/LDP/abs/abs-guide.pdf linux中shell变量$#,[email protected],$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表.如"$*"用「"」括起来的情况.以&qu