【Shell】算术运算符、流程控制、函数使用、数组以及加载其它文件的变量
        【摘要】 
                    文章目录 
1.6 Shell算术运算符 
1 简介 
2 例子 
1.7流程控制 
1 if else 
关系运算符 
2 for 循环 
3 while 语句 
4 无限循环 
5 case(switch) 
6 跳出循环 
1.8 函数使用 
1 函数的快速入门 
2 传递参数给函数 
1.9 数组 
1 定义数组 
2 读取数组...
    
    
    
    文章目录
1.6 Shell算术运算符
1 简介
 Shell  和其他编程一样, 支持 包括:算术、关系、布尔、字符串等运算符。  
 原生  bash  不支持  简单的数学运算,但是可以通过其他命令来实现,例如 expr 。  
 expr  是一款表达式计算工具,使用它能完成表达式的求值操作。  
 例如,两个数相加:  
 
 注意:  
 表达式和运算符之间要有空格 ,例如  2+2  是不对的,必须写成  2 + 2 。  
 完整的表达式要被  `  包含,注意不是单引号,在  Esc  键下边。  
 下表列出了常用的算术运算符,假定变量  a  为  10 ,变量  b  为 20:  
 
 
 
 注意: 条件表达式要放在方括号之间,并且要有空格,例如 :  [$a==$b]  是错误的,必须写成  [ $a == $b  
 ] 。  
2 例子


1.7流程控制
1 if else
 1.1 if  
 if  语句语法格式: 
 
demo
 
 末尾的 fifi 就是 if 倒过来拼写,后面还会遇到类似的。  
 1.2 if else  
 if else  语法格式:  
 
 1.3 if else-if else  
 if else-if else  语法格式:  
 
以下实例判断两个变量是否相等:
关系运算符
 关系运算符只支持数字,不支持字符串,除非字符串的值是数字。  
 下表列出了常用的关系运算符,假定变量  a  为  10 ,变量  b  为  20 : 
 
案例:
 
2 for 循环
2.1 格式

2.2 随堂练习
 
代码如下:


3 while 语句
 while 循环用于不断执行一系列命令,也用于从输入文件中读取数据;命令通常为测试条件。其格式  
  
 
   为:  
  
 
   
  
 
  需求: 计算 1~100 的和
 运行脚本,输出: 
![]()
 使用中使用了  Bash let  命令,它用于执行一个或多个表达式,变量计算中不需要加上  $  来表示变量,  
  
 
   具体可查阅: Bash let  命令 。  
  
 
  4 无限循环
无限循环语法格式:

 ![]()

5 case(switch)
 Shell case 语句为多选择语句。可以用 case 语句匹配一个值与一个模式,如果匹配成功,执行相匹配的  
    
 
     命令。 case 语句格式如下:  
    
 
    
 
     case 工作方式如上所示。取值后面必须为单词 in ,每一模式必须以右括号结束。取值可以为变量或常  
    
 
     数。匹配发现取值符合某一模式后,其间所有命令开始执行直至  ;; 。  
    
 
     取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果  
    
 
     无一匹配模式,使用星号  *  捕获该值,再执行后面的命令。  
    
 
     下面的脚本提示输入 1 到 4 ,与每一种模式进行匹配:  
    
 
    
 
    输入不同的内容,会有不同的结果,例如:

6 跳出循环
 在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环, Shell 使用两个命令来实现该功能:  
     
 
      break 和 continue 。  
     
 
      6.1 break 命令  
      
 
       break 命令允许跳出所有循环(终止执行后面的所有循环)。 
      
 
      
 
       
 6.2 continue  
      
 
       continue 命令与 break 命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。 
      
 
      
1.8 函数使用
1 函数的快速入门
格式

 可以带 function fun()  定义,也可以直接 fun()  定义 , 不带任何参数。  
 参数返回,可以显示加: return  返回,如果不加,将以最后一条命令运行结果,作为返回  
 值。  return 后跟数值 n(0-255)  
 快速入门  
 
2 传递参数给函数
 在 Shell 中,调用函数时可以向其传递参数。在函数体内部,通过  的 形 式 来 获 取 参 数 的 值 , 例 如 ,  1 表示  
 第一个参数, $2 表示第二个参数 ...  
 带参数的函数示例:  
 
 
 
输出结果:
 
 注意,  不 能 获 取 第 十 个 参 数 , 获 取 第 十 个 参 数 需 要  {10} 。当 n>=10 时,需要使用 ${n} 来获取参数。  
 另外,还有几个特殊字符用来处理参数: 
         
1.9 数组
1 定义数组
 数组中可以存放多个值。 Bash Shell  只支持一维数组 (不支持多维数组),初始化时不需要定义数组大  
 小(。  
 与大部分编程语言类似,数组元素的下标由 0 开始。  
 Shell  数组用括号来表示,元素用 " 空格 " 符号分割开,语法格式如下:  
 array_name=(value1 value2 value3 ... valuen) 
 1.1  实例  
 
读取数组元素值的一般格式是:
2.1 实例

执行脚本,输出结果如下所示:

 2.2  获取数组中的所有元素  
 使用 @  或  *  可以获取数组中的所有元素,例如: 
 
执行脚本,输出结果如下所示:
 
 2.3  获取数组的长度  
 获取数组长度的方法与获取字符串长度的方法相同,例如:  
 
执行脚本,输出结果如下所示:

3 遍历数组
3.1 方式一

3.2 方式二

1.10 加载其它文件的变量

1 简介
 和其他语言一样, Shell  也可以包含外部脚本。这样可以很方便的封装一些公用的代码作为一个独立的  
 
 
  文件。  
 
 
  Shell 文件包含的语法格式如下: 
  
 
 
 
 
 
 
2 练习
 定义两个文件  test1.sh 和 test2.sh ,在 test1 中定义一个变量 arr=(java c++ shell), 在 test2 中对 arr 进行循  
 
 
  环打印输出。  
 
 
  第一步: vim test1.sh  
  
 
 
 
 
 
 第二步: vim test2.sh
 
第三步: 执行 test2.sh
 
 好处  :  
 
 
  1.  数据源 和 业务处理 分离  
 
 
  2.  复用 代码扩展性更强 
 
 
 
文章来源: blog.csdn.net,作者:陶然同学,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_45481821/article/details/126901101
        【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
            cloudbbs@huaweicloud.com
        
        
        
        
        
        
        - 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)