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 "a**b=$(($a**$b))"

[[email protected]~_~ day4]# sh test.sh

a-b=4

a+b=8

a*b=12

a/b=3

a%b=0

a**b=36

(2).实验2

[[email protected]~_~ day4]# cat test2.sh

#!/bin/bash

echo $(($1$2$3))

[[email protected]~_~ day4]# sh test2.sh 1 + 2

3

注意:”1 + 2”有空格,如无则只传给$1

2. $[表达式]

[[email protected]~_~ day4]# echo $[3+4]

7

3.let赋值表达式

等同与(()),但后者效率高

[[email protected]~_~ day4]# i=10

[[email protected]~_~ day4]# let i=i+1

[[email protected]~_~ day4]# echo $i

11

4.expr表达式

注意:运算符及计算的数值左右均有空格

(1).四则运算

[[email protected]~_~ day4]# cat expr.sh

#!/bin/bash

a=$1

b=$2

echo "a*b=`expr $a + $b`"

echo "a-b=`expr $a \* $b`"

[[email protected]~_~ day4]# sh expr.sh 2 3

a*b=5

a-b=6

(2).判断文件拓展名

运用:ssh-copy-id文件中;(vim `which ssh-copy-id`)

用法:

[[email protected]~_~ ~]# cat exprfile.sh

#!/bin/bash

if expr "$1" : ".*\.pub" ;then

echo "is .pub file"

else

echo "is not *.pub file"

fi

[[email protected]~_~ ~]# sh exprfile.sh test.pub

8

is .pub file

[[email protected]~_~ ~]# sh exprfile.sh test.pu

0

Is not *.pub file

(3).判断一个数是否为整数

[[email protected]~_~ day4]# cat isInteger.sh

#!/bin/bash

expr $1 + 1 &>/dev/null

if [ $? -eq 0 ]

then

echo "Is Integer"

else

echo "Is not a Integer"

fi

[[email protected]~_~ day4]# sh isInteger.sh 3.9

Is not a Integer

[[email protected]~_~ day4]# sh isInteger.sh 3

Is Integer

(4).计算字符串长度

[[email protected]~_~ day4]# echo `expr length "Hello"`

5

还有其他运用,查看man expr

5.bc命令

一个计算器,用yum安装;直接bc进入计算器; 支持浮点数计算.

(1).交互环境

[[email protected]~_~ day4]# bc

bc 1.06.95

Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.

This is free software with ABSOLUTELY NO WARRANTY.

For details type `warranty‘.

2*3

6

3+7+5

15

3.4+5.6

9.0

(2).加管道符

[[email protected]~_~ day4]# echo "3+5"|bc

8

(3).通过scale指定计算精度

[[email protected]~_~ day4]# var=3.14

[[email protected]~_~ day4]# var=`echo "scale=2;$var*3"|bc`

[[email protected]~_~ day4]# echo $var

9.42

6.awk命令进行计算

支持浮点运算,内置有log、sqr、cos、sin等等函数

[[email protected]~_~ day4]# var=`echo "$var"|awk ‘{printf("%g",sin($1))}‘`

[[email protected]~_~ day4]# echo $var

0.841471

[[email protected]~_~ day4]# var=`echo "$var 2"|awk ‘{printf("%g",cos($1/$2))}‘`

[[email protected]~_~ day4]# echo $var

0.97922

时间: 2024-09-29 16:55:46

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

[shell基础]——变量

变量的赋值 #定义变量,注意等号两边没有任何空格 variable=#定义环境变量export variable= #双引号:可含空格.可转义特殊字符 variable=" " #$() 或 反引号:将命令结果赋值给变量 variable=$( ) variable=` ` #将变量值赋值给变量 gg=$aa$bb 变量的取值 #取值$variable #标准写法,建议使用此方法 ${variable} #示例: #DAY=sunday #echo $DAY sunday # echo

shell基础--变量

source test.sh 和 ./test.sh的区别是source可以把test.sh脚本的变量在脚本执行完还可以用,而./test.sh不行,它的变量只能在脚本里面用. 变量可分为全局变量.局部变量和用户变量. 全局变量是可以在所有的用户,所有的环境上用的. 局部变量只能在本shell里面用. 用户变量只能在指定的用户上用. 每一个用户的家目录都有一个.bash_profile文件,这个文件是用户的变量文件,每次用户登录就会去这个文件里面找到对应的变量. 全局变量的目录在/etc/bas

shell基础 变量 条件测试 判断结构

Top NSD ENGINEER DAY02 案例1:Shell脚本的编写及测试 案例2:重定向输出的应用 案例3:使用特殊变量 案例4:编写一个判断脚本 案例5:编写一个批量添加用户脚本 1 案例1:Shell脚本的编写及测试 1.1 问题 本例要求两个简单的Shell脚本程序,任务目标如下: 编写一个面世问候 /root/helloworld.sh 脚本,执行后显示出一段话“Hello World!!” 编写一个能输出系统信息的 /root/sysinfo 脚本,执行后依次输出当前红帽系统的

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

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

shell脚本基础----变量

1.1shell的定义 1.命令的堆积 2.特定的语法与特定的命令组成的文件 执行脚本命令 bash test.sh 不需要添加执行权限,使用解释器直接解释 sh tesh.sh ./tesh.sh 相对路径,需要添加执行权限 1.2shell脚本基础---变量 变量:用一个固定的字符串表示不固定的内容变量名称注意事项 1.不能以数字开头(包含字母.数字.下划线) 2.不能使用程序中的保留字(例如:if for) 3.不能跟系统中已有的环境变量重名(尽量不要全部使用大写,尽量不要用'_'下划线开

Shell基础教程--2.变量和运算符

2.变量和运算符 2.1.变量的类型 本地变量:环境变量:变量替换(显示变量):位置变量:标准变量:特殊变量: 2.2.本地变量 本地变量在用户现在的shell生命周期的脚本中使用 在命令行, LOCALTEST="test" 设置本地变量,$ echo $LOCALTEST 显示本地变量 set 命令可以查看这个shell的生命周期有哪些本地变量 readonly LOCALTEST ,就可以将LOCALTEST设置成只读的本地变量,不能再对其进行赋值操作,此时若执行如 LOCALT

Shell基础(一):Shell基础应用、简单Shell脚本的设计、使用Shell变量、变量的扩展应用

一.Shell基础应用 目标: 本案例要求熟悉Linux Shell环境的特点,主要练习以下操作: 1> 切换用户的Shell环境       2> 练习命令历史.命令别名       3> 重定向标准输入/输出/错误输出       4> 管道操作实践 步骤: 步骤一:切换用户的Shell环境 若需要临时使用另一种Shell环境,可以直接执行对应的Shell解释器程序,比如只要执行ksh可以切换到ksh命令行环境. [[email protected] ~]# yum -y in

shell基础(上)

Shell基础(上) 1.1什么是shell Shell是一个命令解释器,它在操作系统的最外层,负责直接与用户对话,把用户的 输入解释给操作系统.井处理各种各样的操作系统的输出结果,输出屏幕返回给用户 这种对话方式可以是 交互的方式:从键盘输入命令,通过/bin/bash的解折,可以立即得到shell的回应 非交互的方式:脚本 Shell执行命令分为两种方式 内置命令:如讲过的cd ,pwd, exit和echo等命令.当用户登录系统后,shell以及内置命令就被系统载入到内存,并且一直运行 一

精讲shell基础以及如何高效的学习shell编程

1.前言 1.1 为什么学习shell编程 Shell脚本语言是实现Linux/UNIX系统管理及自动化运维所必备的重要工具,Linux/UNIX系统的底层及基础应用软件的核心大部分涉及Shell脚本的内容.每一个合格的Linux系统管理员或运维工程师,都需要熟练的编写Shell脚本语言,并能够阅读系统及各类软件附带的Shell脚本内容.只有这样才能提升运维人员的工作效率,适应日益复杂的工作环境,减少不必要的重复工作,从而为个人的职场发展奠定较好的基础 1.2 学好Shell编程所需的基础知识