bash中的算术运算

bash中的算术运算:

操作符+、-、*、/、%

declare:

-i:整型变量

-x:环境变量,类似于export

1、let:进行算术运算,格式为let varName=算术表达式

如果计算结果为小数,小数部分被省略。

如:let sum=4+1,结果为5

echo $sum

let s=16/3,结果为5

echo $s

2、varName=$[算术表达式]

3、varName=$((算术表达式))

4、varName=`expr $num1 + $num2`,注意+好前后要有空格,否个为连字符。

例:写一个脚本,请计算1到100之和。

#!/bin/bash

declare -i sum=0;

for num in {1..100}

do

let sum=$sum+$num

done

echo $sum

例:写一个脚本,分别计算1到100之奇数之和和偶数之和。

#!/bin/bash

delcare -i oddSum=0,evenSum=0

for i in `seq 1 2 100`

do

let oddSum=$oddSum+$i

done

echo $oddSum

for i in `seq 2 2 100`

do

let evenSum=$evenSum+$i

done

echo $evenSum

例:计算当前所有用户Id之和

#!/bin/bash

declare -i userIdSum=0

for i in `cut -d: f3 /etc/passwd`

do

userIdSum=$userIdSum+$i

done

echo $userIdSum

例:计算/etc/rc.d/rc.sysinit /etc/init.d/functions /etc/issue三个文件的字符之和

#!/bin/bash

declare -i charSum=0

for file in /etc/rc.d/rc.sysinit /etc/init.d/functions /etc/issue

do

charSum=$charSum+`wc -c $file|cut -d‘ ‘ -f1`

done

例:新建10个用户,tmpUser1-tmpUser10,并计算其Id之和

#!/bin/bash

declare -i userIdSum=0

for i in {1..10}

do

useradd tmpUser$i

let userIdSum=$userIdSum+`id -u tmpUser$i`

done

时间: 2024-11-04 19:01:14

bash中的算术运算的相关文章

Bash中简单算术运算的总结

Bash中执行算术运算有很多种实现方式,下面总结如下: Bash内建的let命令 let varName=expr      举例: n1=3 n2=4 let sum=n1+n2 n3=2 n4=10 n5=5 let n1++ let n2+=4 let sum=\(\(n1+n2\)*n5\)*(n4-n3) 表达式中有括号的,要对括号进行转义,尤其是表达式中运算操作符右边的括号! $[expr] varName=$[expr]     举例: n1=3 n2=4 sum=$[n1+n2]

UNIX/Linux系统管理技术手册(3)----bash 数组和算术运算

复杂的数据结构和计算不是 bash 的特长.但它的确至少提供了数组和算术运算. 1.算术运算 所有的 bash 变量的值都是字符串,所以 bash 在赋值的时候并不区分数字 1 和 字符串 "1" .不同之处在于如何使用变量.下面几行代码展示出了其中的差异: #!/bin/bash a=1 b=$((2)) c=$a+$b d=$(($a+$b)) echo "$a + $b = $c \t(plus sign as string literal)" echo &q

shell中的算术运算

shell中的算术运算方式有很多种,如,A=1,B=2,那么要怎么计算A+B的值了? 不能简单的$A+$B,如果这样运算的话,得出的结果为1+2,显然不是我们想要的结果,要的出结果为3,我们有一下几中方法: 1.let C=$A+$B,echo $C 输出的值就为3 2.C=$(( $A+$B )) 3.C=$[$A+$B] 4.C=`expr $A + $B` (需要注意+号与两边的数值之间要有空格隔开,否则C的结果为1+2) 5.... 练习:写一个脚本给定一个用户,获取其密码警告期限:而后

[转帖]bash中(),{},(()),[],[[]]的区别

https://www.cnblogs.com/marility/p/7259821.html 差之毫厘谬以千里 需要仔细认真 前言:在bash中遇到各种括号,同时在进行字符数值比较判定时,总是不断出现问题,于是通过参考<advanced bash-scripting guide>,同时在centos 6.7版本上进行测试,现况总结如下.如有纰漏,望指正. 一.() 一个命令组合,相当于一个命令组 [[email protected]~chunlanyy testdir]# I=123;(I=

bash中 2&gt;&amp;1 &amp; 的解释

1.首先,bash中0,1,2三个数字分别代表STDIN_FILENO.STDOUT_FILENO.STDERR_FILENO,即标准输入(一般是键盘),标准输出(一般是显示屏,准确的说是用户终端控制台),标准错误(出错信息输出). 2.输入输出可以重定向,所谓重定向输入就是在命令中指定具体的输入来源,譬如 cat < test.c 将test.c重定向为cat命令的输入源.输出重定向是指定具体的输出目标以替换默认的标准输出,譬如ls > 1.txt将ls的结果从标准输出重定向为1.txt文本

bash中通过设置PS1变量改变提示符颜色

参考 <Prompt Magic> ubuntu初始时bash提示符的颜色同程序输出的颜色相同,当大量有输出时,找到输出信息开始的地方往往很费劲.如果把提示符的颜色变成更为醒目的颜色,那么就很容易定位输出信息开始处.bash中想要改变提示符颜色可以通过PS1变量的值来设置,如果将其放入用户对应目录下的.bashrc文件中,则用户打开bash时自动更改颜色.这里,我将提示符改成绿色:    PS1="\[\e[32m\]\[email protected]\h:\w\$ \[\e[0m

Linux中的算术运算

在Linux中的算术运算主要有以下几种方式: 1 算术扩展: 格式:$((算术式)) 如: [[email protected] ~]# r=$((3+5)) [[email protected] ~]# echo $r 8 [[email protected] ~]# r=1 [[email protected] ~]# echo $((r++)) 1 [[email protected] ~]# echo $((r++)) 2 2 使用外部程序:expr 如: [[email protect

bash中的变量

1.bash中的变量: #命令set:显示所有变量. (1).本地变量:只对当前shell进程有效,对其子shell以及其它shell都无效. 定义本地变量:[set]变量名="Value",例animal=dog 引用本地变量:${变量名},其中{}通常省略,例echo $animal 撤销本地变量:unset 变量名,例unset animal (2).局部变量:只对局部代码有效 定义局部变量:local 变量名=变量值 (3).环境变量:当前shell进程以及其子shell都有效

Bash中的数学扩展

Bash只支持整数运算,不支持浮点运算.如果需要进行浮点运算,需要使用bc程序.Bash中的数学扩展有两种形式:$[ expression ]或$(( expression )) 例子:$echo $[5+4-2]7 $echo $[ 5*(6-2) ]20 var1=100var2=50var3=45var4=$((var1*(var2-var3))) #注意:圆括号里不需要加$了,和数学运算一样,推荐用这种方式$echo $var4 也可以使用程序/usr/bin/expr来进行整数运算$e