`
wode66
  • 浏览: 744096 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux shell “(())” 双括号运算符使用

 
阅读更多

在刚开始学习inux shell脚本编程时候,对于它的 四则运算以及逻辑运算。估计很多朋友都感觉比较难以接受。特变逻辑运算符”[]”使用时候,必须保证运算符与算数 之间有空格。 四则运算也只能借助:let,expr等命令完成。 今天讲的双括号”(())”结构语句,就是对shell中算数及赋值运算的扩展。

 

使用方法:

语法:

((表达式1,表达式2…))

特点:

1、在双括号结构中,所有表达式可以像c语言一样,如:a++,b--等。

2、在双括号结构中,所有变量可以不加入:“$”符号前缀。

3、双括号可以进行逻辑运算,四则运算

4、双括号结构 扩展了for,while,if条件测试运算

5、支持多个表达式运算,各个表达式之间用“,”分开

使用实例:

  • 扩展四则运算
01 #!/bin/sh
02  
03 a=1;
04 b=2;
05 c=3;
06  
07 ((a=a+1));
08 echo $a;
09  
10 d=$((10+1,10+2,10+3));
11 echo $d

 

运行结果:

sh testsh.sh
2
13

双括号结构之间支持多个表达式,然后加减乘除等c语言常用运算符都支持。

如果双括号带:$,将获得表达式值,赋值给左边变量。

若表达式为多个,则用最右边的表达式赋值给左边变量。

  • 扩展逻辑运算
01 #!/bin/sh
02  
03 a=1;
04 b="ab";
05  
06  
07 echo $((a>1?8:9));
08  
09 ((b!="a"))&& echo "err2";
10 ((a<2))&& echo "ok";

 

运行结果:

sh testsh.sh
9
err2
ok

  • 扩展流程控制语句(逻辑关系式)
01 #!/bin/sh
02  
03 num=100;
04 total=0;
05  
06 for((i=0;i<=num;i++));
07 do
08     ((total+=i));
09 done
10 echo $total;
11  
12 total=0;
13 i=0;
14 while((i<=num));
15 do
16     ((total+=i,i++));
17 done
18 echo $total;
19  
20 if((total>=5050));then
21     echo "ok";
22 fi

 

运算结果:

sh testsh.sh
5050
5050
ok

 

有了双括号运算符:[[]],[],test 逻辑运算,已经let,expr 都可以抛到一边了。

 

转载自:http://www.cnblogs.com/chengmo/archive/2010/10/19/1855577.html

分享到:
评论

相关推荐

    工作笔记 shell 变量和运算符

    在 Linux 和 Unix 系统中,shell 脚本是一种强大的工具,它可以帮助我们自动化日常任务、处理系统管理和数据操作等。本文将详细介绍 shell 变量和运算符的相关知识点,帮助读者更好地理解和掌握 shell 编程的基础。 ...

    Linux shell 命令行及脚本编程实例详解

    Linux Shell是Linux操作系统中用户与系统交互的主要接口,它是一个命令行解释器,允许用户通过输入命令来执行系统操作。Shell脚本编程则是利用Shell语言编写的一系列命令集合,可以实现自动化任务处理,大大提高了...

    LINUX Shell编程指南

    在Shell中,可以使用文件测试运算符检查文件属性,如 `-f` (文件存在且是普通文件),`-d` (目录),`-e` (文件或目录存在)。 9. **脚本执行权限** 使用`chmod +x script.sh`赋予脚本执行权限,然后通过`.`(或`...

    Introduction to unix and linux shell - 1

    - **元字符**:Shell支持使用元字符来进行模式匹配。 - `*`:匹配任意字符串。 - `?`:匹配任意单个字符。 - `[ ]`:匹配方括号内的任意一个字符。 - `[!]`:不匹配紧跟其后的字符。 - **输入输出重定向**: - ...

    LINUXSHELL编程指南

    15. **Shell脚本最佳实践**:保持代码简洁,注释清晰,避免使用全局变量,正确处理错误,尽量使用双引号括起变量,以及定期更新Shell知识以了解新特性。 以上只是Linux Shell编程的基础知识,实际应用中还有更多...

    Linux shell编程

    - **引号**:Shell 中有单引号 `'` 和双引号 `" "`, 分别表示字符串中的所有字符都按字面意义解释以及允许变量替换。 - **变量与参数**:Shell 支持变量定义和使用。变量可以存储各种类型的数据,如文本字符串或数值...

    LINUX与UNIX Shell

    命令执行顺序章节则涉及了如何使用逻辑运算符&&和||以及括号()和花括号{}来将多个命令组合在一起,控制命令的执行顺序和条件。 第二部分专注于文本过滤技术,包括正则表达式介绍和grep命令家族。正则表达式章节中...

    linux运维学习笔记:Shell变量的数值运算.pdf

    在实际应用中,建议使用双括号(( ))进行简单的整数运算,因为它的效率较高。而复杂的运算或者需要小数运算时,可以选择bc命令。通过不断的实践和练习,可以加深对Shell数值运算的理解,并提升运维工作的效率。

    linux与unix shell编程指南读书笔记.rar

    Bash是目前最广泛使用的Shell,也是Linux发行版的默认Shell。 二、Bash基础知识 1. 变量:在Shell编程中,变量用于存储数据,如文本、数字等。声明变量时无需指定类型,例如`NAME="John"`。 2. 命令替换:通过反...

    Introduction to unix and linux shell - 2

    【Unix/Linux Shell简介 - 2】 Unix/Linux Shell是操作系统中的一种命令解释器,它为用户提供了一个与系统交互的界面,允许用户输入命令、执行程序、管理文件和进行系统操作。Shell不仅是一个命令行接口,还是一个...

    从0开始学习Shell高级编程视频课程第二部分1

    双括号运算符可以避免shell的单词分割和文件名扩展,确保了数值计算的准确性和效率。 接下来,04-双括号(())运算多范例实践与生产多案例.avi和05-变量的数值运算let内置命令讲解.avi将通过实例深入讲解双括号的多种...

    Linux下shell编程

    在Linux操作系统中,Shell编程是一种强大的工具,它允许用户通过编写脚本来自动化日常任务,提高工作效率。Shell脚本是用Shell语言编写的,常见的Shell有Bash(Bourne-Again SHell)、Sh、Csh、Ksh以及Zsh等。在本篇...

    shell脚本编程

    命令分行使用反斜杠(\)来实现,逻辑运算符包括“&&”(与)和“||”(或),而数学运算则可以使用$[exp]或$((exp))。 脚本文件通常是文本文件,包含可以被Shell解释的命令。脚本文件的第一行指明了使用哪个解释器...

    shell脚本语言.pdf

    * Shell 字符串可以使用双引号或单引号来定义 Shell 数组: * Shell 数组是指在 Shell 中的数组类型数据 * Shell 数组可以使用括号来定义 Shell echo 命令: * Shell echo 命令是指在 Shell 中输出字符串的...

    LINUX与UNIX Shell编程指南.pdf

    本章节解释了在Shell脚本中控制命令执行顺序的方法,包括使用逻辑运算符&&和||,以及如何使用括号和大括号来组织命令。 ### 第二部分 文本过滤 #### 第7章 正则表达式介绍 介绍了正则表达式的基础知识,包括如何...

    linux与unix的shell编程指南

    9. **文件测试运算符**:在Shell中,可以使用文件测试运算符检查文件的存在、类型、权限等信息,如`-f`检查是否为普通文件,`-d`检查是否为目录。 10. **数组与关联数组**:虽然Bash的数组功能相对较弱,但仍然支持...

    linux与unix shell 编程指南

    定义函数时使用`function`关键字或直接以函数名开始,结束时不需要括号。 5. **Shell数组** Bash支持数组,允许存储多个元素,并可以通过索引访问。虽然数组功能在其他Shell中可能有限,但在Bash中,它们是强大而...

    Linux-Shell用法详解(推荐文档).ppt

    - **逻辑运算**:-a(与)、-o(或)在shell中进行逻辑判断,而在方括号[]中使用&&和||。 **6. Test命令和[ ]表达式** - `test`命令和方括号表达式([ ])都可以进行条件测试,它们在很多情况下是等价的,但语法上...

Global site tag (gtag.js) - Google Analytics