变量的数值计算

1.$((表达式))

(1).实验1

[root@~_~ 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))"

[root@~_~ day4]# sh test.sh

a-b=4

a+b=8

a*b=12

a/b=3

a%b=0

a**b=36

(2).实验2

[root@~_~ day4]# cat test2.sh

#!/bin/bash

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

[root@~_~ day4]# sh test2.sh 1 + 2

3

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

2. $[表达式]

[root@~_~ day4]# echo $[3+4]

7

3.let赋值表达式

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

[root@~_~ day4]# i=10

[root@~_~ day4]# let i=i+1

[root@~_~ day4]# echo $i

11

4.expr表达式

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

(1).四则运算

[root@~_~ day4]# cat expr.sh

#!/bin/bash

a=$1

b=$2

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

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

[root@~_~ day4]# sh expr.sh 2 3

a*b=5

a-b=6

(2).判断文件拓展名

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

用法:

[root@~_~ ~]# cat exprfile.sh

#!/bin/bash

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

echo "is .pub file"

else

echo "is not *.pub file"

fi

[root@~_~ ~]# sh exprfile.sh test.pub

8

is .pub file

[root@~_~ ~]# sh exprfile.sh test.pu

0

Is not *.pub file

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

[root@~_~ 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

[root@~_~ day4]# sh isInteger.sh 3.9

Is not a Integer

[root@~_~ day4]# sh isInteger.sh 3

Is Integer

(4).计算字符串长度

[root@~_~ day4]# echo `expr length "Hello"`

5

还有其他运用,查看man expr

5.bc命令

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

(1).交互环境

[root@~_~ 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).加管道符

[root@~_~ day4]# echo "3+5"|bc

8

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

[root@~_~ day4]# var=3.14

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

[root@~_~ day4]# echo $var

9.42

6.awk命令进行计算

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

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

[root@~_~ day4]# echo $var

0.841471

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

[root@~_~ day4]# echo $var

0.97922

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

  1. shell基础——变量定义

    快速参考: 变量定义格式: 变量名=值 str1="hello world" # define a string var str2=hello # define a string ...

  2. [shell基础]——变量

    变量的赋值 #定义变量,注意等号两边没有任何空格 variable=#定义环境变量export variable= #双引号:可含空格.可转义特殊字符 variable=" " # ...

  3. shell编程——变量的数值计算

    在shell脚本中,有时候会需要对数值类型的变量进行计算,通常我们用的是(()) [root@localhost collect]# ((a=1+2)) [root@localhost collect ...

  4. SHELL (4) —— 变量的数值计算实践

    摘自:Oldboy Linux运维——SHELL编程实战 利用(())双括号进行比较及判断: [root@yeebian ~]# echo $((3<8)) 1 #1表示真. [root@yee ...

  5. Shell基础-环境变量配置文件

    Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/p ...

  6. shell基础及变量

    一 Shell概述 1.Shell的作用——命令解释器,“翻译官” shell作为一个人机接口,用于解释用户输入的命令,将命令解释为Linux内核可以执行的2进制代码,并将执行的结果返回在标准终端上. ...

  7. centos shell基础 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 nohup & 后台运行 cut,sort,wc ,uniq ,tee ,tr ,split, paste cat> 2.txt <<EOF 通配符 glob模式 发邮件命令mail 2015-4-8 第十二节课

    centos shell基础知识 alias  变量单引号 双引号   history 错误重定向 2>&1  jobs  环境变量 .bash_history  source配置文件 ...

  8. Linux中shell基础、重定向、管道符、环境变量

    1.什么是shell Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器).它接收用户输入的命令并把它送入内核去执行.起着协调用户与系统的一致性和在用户与系统之间进行交互的 ...

  9. shell基础、变量、相关脚本

    目录 一.shell基础 书写规范 引号 配置文件 read交互 脚本调式 小节总结 二.变量 变量类型 位置变量 状态变量 替换和删除 变量补充 变量运算 小节总结 三.相关脚本面试题 统计hist ...

随机推荐

  1. Spring+SpringMVC+SpringDataJpa整合

    一.思路: (一) Dao层与Service层: applicationContext.xml. a) 数据库连接池 b) 整合jpa c) 配置@service文件扫描器. d) 配置事务管理管理器 ...

  2. 将windows共享文件夹挂载在linux机器的/mnt/windows/ 目录下进行访问

    将windows共享文件夹挂载在linux机器的/mnt/windows/ 目录下进行访问.windows机器ip:192.168.1.101,用户名:XXXX密码:XXXXlinux机器ip:ip2 ...

  3. 【学习笔记】--- 老男孩学Python,day9, 文件操作

    有 + 就是有光标,注意光标位置 不同模式打开文件的完全列表:  http://www.runoob.com/python/python-files-io.html 模式 描述 r 以只读方式打开文件 ...

  4. 用struct模块解决tcp的粘包问题

    服务器端程序 import struct import socket sk = socket.socket() sk.bind(('127.0.0.1',9000)) sk.listen() conn ...

  5. csharp:获取 DNS、网关、子网掩码、IP

    /// <summary> /// DNS.网关.子网掩码.IP /// 涂聚文 2015 /// </summary> public class IPAddressStrin ...

  6. vue-cli脚手架的安装

    https://github.com/vuejs/vue-cli 官网 使用官方推荐的webpack 条件:node在4.以上,npm在3以上,查看版本号打开cmd输入,node -v     npm ...

  7. angularjs ui-view多视口多层嵌套路由配置

    最近研究了一下ui-view多层嵌套,整理了一下 1.最简单的ui-view用法 html部分: <ul class="nav navbar-nav"> <li ...

  8. Tab Key not working when using Xfce remote desktop

    Xfce 远程桌面Tab键设置 Use CTRL-tab instead of  tab The XFCE Terminal has kidnapped the tab key for a featu ...

  9. JavaScript写九九乘法表

    <script language=javascript> for(i=1;i<=9;i++){ for(j=1;j<=9;j++){ document.write (i+&qu ...

  10. 图形报表部署在Linux下出现乱码解决办法

     客户问题: 客户的操作系统SUSE LINUX Enterprise Server 10 (i586) 64位,服务器 weblogic8.1, JDK版本:jdk1.4.系统中只有图形报表展示 ...