linux之let用法
shell程序中的操作默认都是字符串操作,在要运行数学运算符的时候可能得到意想不到的答案:
var=1
var=$var+1
echo $var output:
1+1
从这个例子中可以看出shell字符串连接的操作,需要注意的是空格。
在shell中可以使用let来指示下面是算术表达式,let表达式内变量不用加$
var=1
let "var+=1" 或 let var+=1 这种写法运算符间不能有空格
echo $var output:
2
这其中的let可以用(())代替,let ″j=i*6+2″等价于((j=i*6+2)), 就像很多的循环中用法一样
注意:let必须是完整的算术表达式,即有等号两边
(())、expr 可以只有等号右边的计算,由$((...))、$(expr ...)、`expr ...` 查看返回结果
var=1
((var++)) 查看结果: echo $(())
echo $var output:
2
还有一种写法:
var=1
var=$[$var+1]
echo $var output:
2
使用expr,需要注意的是其中的那个符号并不是单引号,而是“1”左边的那个键
注意:将需要运算的表达式写入在expr 后面,保证参数与运算符号中间有空格隔开。
var=1
var=`expr $var + 1`
echo $var output:
2
1:在shell 中$() 与 ``等效。执行中间包含的命令语句,返回执行结果。
2:从效率来说let==(()) > expr > bc。let和(())运行是内建命令,使用相同的算法。
3:let 和 expr 的运算是整数运算,不包括浮点预算。
4:expr和bc是外部程序,expr的体积几乎等于bc的1/3,执行一次装入内存所消耗的时间就不一样。
5:从运算能力来说,bc排第一位。
上面的这几种做法都是只能处理整数运算,下面的这种做法是可以处理浮点数的:
var=1
var=`echo "scale=1;$var*2.0"|bc` bc预设输出整数,用scale 指定小数点下位数
echo $var output:
2.0
上面的`符号跟上面的一样,是1左边的那个键,而bc是linux上面的一个计算器,支持除位运算以外的所有运行。
另外一个支持浮点运算的方法是awk:
var=1
var=`echo "$var 1"|awk '{printf("%g",$1+$2)}'`
echo $var output:
2
$ c=$(awk 'BEGIN{print 7.01*5-4.01 }')
$ echo $c
转自:http://blog.sina.com.cn/s/blog_a7b22c930101tfqo.html
linux之let用法的更多相关文章
- (转) linux之sort用法
sort命令是帮我们依据不同的数据类型进行排序,其语法及常用参数格式: sort [-bcfMnrtk][源文件][-o 输出文件] 补充说明:sort可针对文本文件的内容,以行为单位来排序. 参 数 ...
- linux mail命令用法
在Linux系统下mail命令的测试 1. 最简单的一个例子: mail -s test admin@aispider.com 这条命令的结果是发一封标题为test的空信给后面的邮箱,如果你有mta并 ...
- linux expect, spawn用法小记
linux expect, spawn用法小记_IT民工_百度空间 linux expect, spawn用法小记 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://sys ...
- linux下automake用法
linux下automake用法 2017年02月06日 09:21:14 阅读数:3684 标签: makemakefilegnulinux 作为Linux下的程序开发人员,大家一定都遇到过Ma ...
- Linux上case用法
Linux上case用法示例: #!/bin/bash # This is a script for test case ASK_COUNT=$ #从参数获取该变量的值 # if [ -z " ...
- Linux shell ${}简单用法
转自:Linux shell ${}简单用法 为了完整起见,我这里再用一些例子加以说明 ${ } 的一些特异功能:假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.t ...
- Linux中find用法
Linux中find用法 linux常用命令 find -name april* 在当前目录下查找以april开始的文件 find -name april* fprint file 在当前目录下查找以 ...
- (转)linux paste命令用法详解
linux paste命令用法详解原文:http://www.xfcodes.com/linuxcmd/mulu/10211.htmlinux下paste命令,可用于合并文件的列. 功能说明:合并文件 ...
- 【转载】linux之sed用法
linux之sed用法 原文地址:http://www.cnblogs.com/dong008259/archive/2011/12/07/2279897.html sed是一个很好的文件处理工具 ...
- linux grep的用法
linux grep的用法<pre>[root@iZ23uewresmZ ~]# cat /home/ceshis.txtb124230 b034325 a081016 m7187998 ...
随机推荐
- elecworks 图框管理器
图框管理器中存储的是图纸模板(图框),新建图框的步骤如下: 1 数据库---图框管理器----新建 2 打开图框属性设置窗口,设置图框属性,设置好之后点击确定 3 右击图框图标---打开(进入图框绘制 ...
- 数据结构上机实验dfs&&bfs遍历图
#include<stdio.h> #include<string.h> #include<stdlib.h> #include<queue> #inc ...
- UI进阶 数据处理之文件读写
目录: 1-------沙盒机制(SandBox) 2-------简单对象的读写(I/O)操作 3-------复杂对象的读写(I/O)操作 一.沙盒机制(SandBox) 什么是沙盒:每个iOS应 ...
- Android的事件处理
1 android事件处理概述 不论是桌面应用还是手机应用程序,面对最多的就是用户,经常需要处理用户的动作-------也就是需要为用户动作提供响应,这种为用户动作提供响应的机制就是事件处理.andr ...
- Java多线程——Semaphore信号灯
Semaphore可以维护当前访问自身的线程个数,并提供了同步机制.使用Semaphore可以控制同时访问资源的线程个数(即允许n个任务同时访问这个资源),例如,实现一个文件允许的并发访问数. Sem ...
- 修改HTMLTestRunner模板
---恢复内容开始--- 1.修改bug(passCase不标色和加粗) style = (n == 2 and 'errorCase') or (n == 1 and 'failCase') or ...
- VB二进制文件读写
数组存取 存数组 Private Sub Command2_Click() Dim fileNumber As Integer Dim S9 As String Dim k As Integer Di ...
- 08重编终极版《东邪西毒:终极版》DVD粤语中字
1.东邪西毒].Ashes.of.Time.1994.384p.DVDRip.x264.ac3-DTMM.mkv 这个版本最清晰 ,可惜删减了,只有87分钟,粤语,1.4G. 2.东邪西毒(初始版). ...
- IPAD之分割视图 SplitViewController
转载自:http://www.w3cschool.cc/ios/att-ios-ui-splitview-htm.html 1 分割视图的使用 分割视图是 iPad 的特定视图控制器用于管理两个视图控 ...
- js冒泡事件示例
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jQuery - Start ...