shell基础--变量的数值计算
变量的数值计算
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基础--变量的数值计算的更多相关文章
- shell基础——变量定义
快速参考: 变量定义格式: 变量名=值 str1="hello world" # define a string var str2=hello # define a string ...
- [shell基础]——变量
变量的赋值 #定义变量,注意等号两边没有任何空格 variable=#定义环境变量export variable= #双引号:可含空格.可转义特殊字符 variable=" " # ...
- shell编程——变量的数值计算
在shell脚本中,有时候会需要对数值类型的变量进行计算,通常我们用的是(()) [root@localhost collect]# ((a=1+2)) [root@localhost collect ...
- SHELL (4) —— 变量的数值计算实践
摘自:Oldboy Linux运维——SHELL编程实战 利用(())双括号进行比较及判断: [root@yeebian ~]# echo $((3<8)) 1 #1表示真. [root@yee ...
- Shell基础-环境变量配置文件
Shell基础-环境变量配置文件 source 配置文件 或者 . 配置文件: 把环境变量写入配置文件后,需要用户重新登陆才能生效,而是用source命令,则能直接生效 主要的配置文件: /etc/p ...
- shell基础及变量
一 Shell概述 1.Shell的作用——命令解释器,“翻译官” shell作为一个人机接口,用于解释用户输入的命令,将命令解释为Linux内核可以执行的2进制代码,并将执行的结果返回在标准终端上. ...
- 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配置文件 ...
- Linux中shell基础、重定向、管道符、环境变量
1.什么是shell Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器).它接收用户输入的命令并把它送入内核去执行.起着协调用户与系统的一致性和在用户与系统之间进行交互的 ...
- shell基础、变量、相关脚本
目录 一.shell基础 书写规范 引号 配置文件 read交互 脚本调式 小节总结 二.变量 变量类型 位置变量 状态变量 替换和删除 变量补充 变量运算 小节总结 三.相关脚本面试题 统计hist ...
随机推荐
- 【转】Apache服务器的下载与安装
PHP的运行必然少不了服务器的支持,何为服务器?通俗讲就是在一台计算机上,安装个服务器软件,这台计算机便可以称之为服务器,服务器软件和计算机本身的操作系统是两码事,计算机自身的操作系统可以为linux ...
- MongoDB2.x升级到3.x解决方案
MongoDB2.x版本Maven配置 <!-- mongodb --> <dependency> <groupId>org.springframework.dat ...
- Springboot拦截器未起作用
之前遇到要使用springboot拦截器却始终未生效的状况,查了网上的博客,大抵都是@Component,@Configuration注解未加,或是使用@ComponentScan增加包扫描,但是尝试 ...
- 【 js 片段 】如何组织表单的默认提交?【亲测有效】
最近做的一个项目,我分到的部分有表单验证.点击了提交按钮,但我并不想让他跳转页面去提交.于是经过各种百度,各种 stackoverflow,各种抱大神腿之后,有了以下解决办法: 重点就是阻止 form ...
- 使用vue+webpack打包时,去掉资源前缀
在build文件夹下找到webpack.prod.conf.js文件,搜索 filename: utils.assetsPath('css/[name].[contenthash].css'), 将[ ...
- LOJ#6463 AK YOI 树分治+线段树合并
传送门 既然是树上路径统计问题,不难想到要使用树分治,这里以点分治为例 由点分治的性质,每层只需要考虑经过重心的路径 因为需要维护路径长度在一定范围内的最大权值和,所以要用一个数据结构维护一下到根节点 ...
- vue三要素及底层实现机制
深入解析Vue 我们首先来熟悉一下我们这个文档所学习内容的流程. 先对比一下jQuery和Vue的区别,再讲述Vue的MVVM模型,接着讲解Vue的实现流程. 当然,我是不相信没有对比哪来的伤害,没有 ...
- margin相关基本知识
什么是 margin ? CSS 边距属性定义元素周围的空间.通过使用单独的属性,可以对上.右.下.左的外边距进行设置.也可以使用简写的外边距属性同时改变所有的外边距.——W3School 边界,元素 ...
- 关于CSS重要知识点(1)
1. 盒子模型 CSS处理网页内容时,会把每一个元素"放在"一个盒子里,也就是所谓的盒子模型. 盒子模型包括4部分:内容,内边距(padding),边框(border)和外边距(m ...
- thinkPHP3.2.2 控制器内跳转的三种方式
public function jump() { $obj = new TestController(); $obj->logged(); } public function jump1() { ...