shell-变量的数值运算-bc-typeset-中括号等方法介绍
1. bc命令的用法:
bc是unix下的计算器,它也可以用在命令行下面:
例:给自变量i加1
i=2
i=`echo $i + 1|bc` --------效率低
因为bc支持科学计算,所以这种方法功能非常强大
echo $i + 1|bc
[root@1-241 scripts]# echo 3.5+5|bc
8.5
[root@1-241 scripts]# echo 3.5+8|bc
11.5
[root@1-241 scripts]# echo 3.5+8.9|bc
12.4
[root@1-241 scripts]# echo "scale=1;5.23 * 3.13"|bc
16.36
[root@1-241 scripts]# echo "obase=2;8"|bc #把十进制转换成二进制
1000
[root@1-241 scripts]# echo "obase=2;4"|bc
100
[root@1-241 scripts]# echo "obase=2;1"|bc
1
[root@1-241 scripts]# echo "obase=2;2"|bc
10
[root@1-241 scripts]# echo "obase=16;20"|bc #把十进制转换成十六进制
14 [root@1-241 scripts]# seq -s "+" 10|bc
55
特点: bc的特点是支持小数运算
2. typeset命令的用法:
使用整数变量直接进行计算
例如:
[root@1-241 scripts]# typeset -i A=1 B=3
[root@1-241 scripts]# A=A+B
[root@1-241 scripts]# echo $A
4
3. $[ ]的用法:
实践操作演示:
[root@1-241 scripts]# echo $[3+2]
5
[root@1-241 scripts]# echo $[3-2]
1
[root@1-241 scripts]# echo $[3*2]
6
[root@1-241 scripts]# echo $[3/2]
1
[root@1-241 scripts]# echo $[3**2]
9
[root@1-241 scripts]# echo $[3%2]
实际解决问题例子:打印数学杨辉三角
#!/bin/bash
if (test -z $1) ;then
read -p "Input Max Lines:" MAX
else
MAX=$1
fi i=1
while [ $i -le $MAX ] #i行控制
do
j=1
while [ $j -le $i ] #j列控制
do
f=$[i-1] #f=i-1 这是另一种计算写法。
g=$[j-1] #g=j-1 这是另一种计算写法。
if [ $j -eq $i ] || [ $j -eq 1 ] ; then
declare SUM_${i}_$j=1 #声明变量 头尾都是1
else
declare A=$[SUM_${f}_$j] #取上一行的j列变量
declare B=$[SUM_${f}_$g] #取上一行的j-1列变量
declare SUM_${i}_$j=`expr $A + $B` #声明并计算当前变量的值
fi
echo -en $[SUM_${i}_$j]" " #输出当前变量
let j++
done
echo #换行
let i++
done
shell-变量的数值运算-bc-typeset-中括号等方法介绍的更多相关文章
- Shell基础(二):Shell中的数值运算、条件测试操作、使用if选择结构
一.Shell中的数值运算 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 使用expr.$[ ].let等整数运算工具:定义变量X=1234,然后计算X与78 ...
- [Shell]Bash变量:数值运算及运算符
------------------------------------------------------------------------------------------------- Sh ...
- shell脚本基础 数值运算 判断 及if语句
数值运算 整数运算[三种,随便掌握一种即可]expr 数字 运算符 数字 [root@ceshiji ~]# expr 1 + 1(运算符号都是+ - * / 注:*需要\*.%是取余,余数只有0 1 ...
- shell中的数值运算
By francis_hao Oct 2,2017 本文摘录自bash的man手册. 算数运算相关的形式 形式 含义 ((expression)) expression按照下面描述的算术 ...
- shell基础:数值运算与运算符
linux的shell中,变量的类型默认都是字符串型. export将aa声明为环境变量.也可用declare声明.其实就是改变了-x属性 $(()) 最常用.
- LinuxShell脚本编程基础2-变量与数值运算、父shell和子shell
1.变量和数值运算 Shell脚本的变量不需要声明的 对变量赋值有两种方式, 直接用“=” 或者用键盘输入值 #!/bin/bash name1="Jack" echo $name ...
- shell简单用法笔记(shell中数值运算)二
shell中变量值,如果不手动指定类型,默认都是字符串类型: 例如: a= b= c=$a+#b echo $c 结果会输出:123+456 shell中,如果要进行数值运算,可以通过一下方法: 方法 ...
- Linux shell 变量 数学 运算
Abstract : 1) Linux shell 中使用 let , [ ] ,(( )) 三种运算符操作 shell 变量进行简单的基本运算: 2)Linux shell 中使用 expr 与 ...
- shell变量与运算
shell变量与运算 @(0003 shell编程) 变量存在于内存中.假设变量str,设置或修改变量属性时,不带$号,只有引用变量的值时才使用$号.也就是说在内存中,标记变量的变量名称是str,而不 ...
- shell之数值运算
Shell中声明变量默认是字符串, 要参与数值运算,可使用下面方式,简单,表示以数值方式.
随机推荐
- HDU - 6570 - Wave(暴力)
Avin is studying series. A series is called "wave" if the following conditions are satisfi ...
- web前端常见安全问题
1,SQL注入 2,XSS 3,CSRF 4.文件上传漏洞 1,SQL注入:这个比较常见,可能大家也听说过,就是URL里面如果有对数据库进行操作的参数时,要做一下特殊的处理,否则被别有用心的人利用的话 ...
- Linux平台Zabbix Agent的安装配置
这里简单总结一下Linux平台Zabbix Agent的安装配置,实验测试的Zabbix版本比较老了(Zabbix 3.0.9),不过版本虽然有点老旧,但是新旧版本的安装步骤.流程基本差别不大.这里的 ...
- Jmeter-添加用户变量
1. 创建用户定义的变量. 2. 3. 4.输出结果:
- C++11的decltype关键字
C++11的decltype关键字 概述 decltype关键字和auto有异曲同工之处 有时我们希望从表达式的类型推断出要定义的变量类型,但是不想用该表达式的值初始化变量(如果要初始化就用auto了 ...
- UEFI、BIOS、GPT、MBR等概念的辨析
(本文转移自本人的旧博客) 从各个地方包括知乎,Wiki,CSDN搜索到的一些整理,这些概念极易混淆. 先说互相的关系 BIOS和UEFI是两种固件接口标准 MBR和GPT是两种分区表 Legacy模 ...
- leetcode刷题-94二叉树的中序遍历
题目 给定一个二叉树,返回它的中序 遍历. 实现 # def __init__(self, x): # self.val = x # self.left = None # self.right = N ...
- leetcode刷题-80.删除排序数组中的重复项 II
题目 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素最多出现两次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. ...
- sudo提权,ansible批量给所有主机创建系统账户,授权
sudo(superuser or another do)让普通用户可以以超级管理员或其他人的身份执行命令. sudo基本流程如下: 1.管理员需要先授权(修改/etc/sudoers文件) 2.普通 ...
- 阿里云服务器外网IP无法访问网站
1.添加IIS时添加了127.0.0.1的IP监听导致无法访问外网IP 添加IP监听:netsh http add iplisten 127.0.0.1显示IP监听:netsh http show i ...