立聪堂德州十三局店 发表于 2025-2-26 08:43:38

【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 读取数组
3 遍历数组
1.10 加载其它文件的变量
1 简介
2 训练
1.6 Shell算术运算符

1 简介


   Shell   和其他编程一样,支持包括:算术、关系、布尔、字符串等运算符。   原生   bash   不支持 简朴的数学运算,但是可以通过其他命令来实现,比方expr。   expr   是一款表达式计算工具,利用它能完成表达式的求值操纵。   比方,两个数相加:   https://i-blog.csdnimg.cn/blog_migrate/ff28c5e11ead649db38b5e8f034acc5b.png    注意:   表达式和运算符之间要有空格,比方   2+2   是不对的,必须写成   2 + 2。   完整的表达式要被   ` 包含,注意不是单引号,在   Esc   键下边。   下表列出了常用的算术运算符,假定变量   a   为   10,变量   b   为 20:   https://i-blog.csdnimg.cn/blog_migrate/c3fee0bdedd28ab0ccae5abe43c69262.png    注意:条件表达式要放在方括号之间,而且要有空格,比方:   [$a==$b] 是错误的,必须写成   [ $a == $b     ]。   2 例子

https://i-blog.csdnimg.cn/blog_migrate/902f00433e555ece5b367f2e917a7d00.png
https://i-blog.csdnimg.cn/blog_migrate/52007c09c0ffbc59a18bfa40687c0e30.png
1.7流程控制

1 if else


   1.1 if     if   语句语法格式:    https://i-blog.csdnimg.cn/blog_migrate/a74ea32d6e63612cee3e4fa5c5965b39.pngdemo
https://i-blog.csdnimg.cn/blog_migrate/3546c10bf606309b5718dce08acb98cf.png
   末端的fifi就是if倒过来拼写,后面还会遇到类似的。   1.2 if else     if else   语法格式:   https://i-blog.csdnimg.cn/blog_migrate/be37abc0952a79a4c7d25d9b3a0c6dce.png    1.3 if else-if else     if else-if else   语法格式:   https://i-blog.csdnimg.cn/blog_migrate/51ed16d1f2f43b63d2378f4f404c5b56.png以下实例判断两个变量是否相称: 
关系运算符


   关系运算符只支持数字,不支持字符串,除非字符串的值是数字。   下表列出了常用的关系运算符,假定变量   a   为   10,变量   b   为   20:    https://i-blog.csdnimg.cn/blog_migrate/d2d9d5c965d228e617813ef0d7c90578.png案例:
https://i-blog.csdnimg.cn/blog_migrate/0e1b0a9122e94e79eed4fa280b60c365.png https://i-blog.csdnimg.cn/blog_migrate/5016d4d646d81ab139a022df16df5fe1.png
   2 for 循环

2.1 格式
https://i-blog.csdnimg.cn/blog_migrate/ff19e3a3a975022c30e698b974b7e1ef.png
2.2 随堂训练
https://i-blog.csdnimg.cn/blog_migrate/03403bb58a522596324c42ea2032b63a.png
代码如下:
https://i-blog.csdnimg.cn/blog_migrate/d8f5d5ca5e97839553d76a0e1ccaaf85.png
https://i-blog.csdnimg.cn/blog_migrate/02935757736e8551130f29ef53b25605.png
   3 while 语句

   
       while    循环用于不断执行一系列命令,也用于从输入文件中读取数据;命令通常为测试条件。其格式         为:            https://i-blog.csdnimg.cn/blog_migrate/5c7d492190808dbaca6c50b8c065d5a8.png      需求: 计算 1~100 的和
   https://i-blog.csdnimg.cn/blog_migrate/76dca804505680c8e321db8457d0d562.png 运行脚本,输出:
   https://i-blog.csdnimg.cn/blog_migrate/221da7874bc11752422207a2648de27c.png
       利用中利用了   Bash let   命令,它用于执行一个或多个表达式,变量计算中不需要加上   $   来表现变量,         具体可查阅:    Bash let   命令    。         4 无限循环

    无限循环语法格式:
    https://i-blog.csdnimg.cn/blog_migrate/272d74fd70e9d2398f4c6ac094a1cc47.png
     https://i-blog.csdnimg.cn/blog_migrate/a74f671ef456afb109bab8228212f9ec.png
    https://i-blog.csdnimg.cn/blog_migrate/a1326189b19d5feb0e416bf1054320c5.png
         5 case(switch)

   
         Shell case      语句为多选择语句。可以用      case      语句匹配一个值与一个模式,如果匹配成功,执行相匹配的               命令。      case      语句格式如下:               https://i-blog.csdnimg.cn/blog_migrate/02bcf03294265bb2134c18996cf4cb54.png                case      工作方式如上所示。取值后面必须为单词      in      ,每一模式必须以右括号结束。取值可以为变量或常               数。匹配发现取值符合某一模式后,其间所有命令开始执行直至       ;;      。               取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果               无一匹配模式,利用星号       *       捕获该值,再执行后面的命令。               下面的脚本提示输入      1      到      4      ,与每一种模式进行匹配:               https://i-blog.csdnimg.cn/blog_migrate/40fcd7d50bcde7a57fe58463aaaac23e.png          输入不同的内容,会有不同的效果,比方:
   https://i-blog.csdnimg.cn/blog_migrate/3ec1fe8c8b0bf95d562d3b92ae0683e9.png
         6 跳出循环

      
             在循环过程中,偶然候需要在未达到循环结束条件时逼迫跳出循环,       Shell       利用两个命令来实现该功能:                  break       和       continue       。                            6.1 break      命令                       break      命令允许跳出所有循环(终止执行后面的所有循环)。                      https://i-blog.csdnimg.cn/blog_migrate/fd6b4ad72d5e993562e0dba370bb3f04.png             https://i-blog.csdnimg.cn/blog_migrate/083654d514c5a25eed8a494043179fe7.png
               6.2 continue                       continue      命令与      break      命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。                      https://i-blog.csdnimg.cn/blog_migrate/5ed81c314f542b79d9cc567d9a92d2c6.png            https://i-blog.csdnimg.cn/blog_migrate/66bddd0b88a89c09059e6f3e375776bb.png
                      1.8 函数利用

1 函数的快速入门

格式
https://i-blog.csdnimg.cn/blog_migrate/d4e371bda8bea9b3cc5174e651885ea5.png
   可以带function fun()   界说,也可以直接fun()   界说,不带任何参数。   参数返回,可以显示加:return   返回,如果不加,将以末了一条命令运行效果,作为返回   值。   return后跟数值n(0-255)   快速入门   https://i-blog.csdnimg.cn/blog_migrate/0aae9b934ab87c2af8e12900d0a02c0b.png2 转达参数给函数


   在Shell中,调用函数时可以向其转达参数。在函数体内部,通过   的 形 式 来 获 取 参 数 的 值 , 例 如 ,   1表现   第一个参数,$2表现第二个参数...   带参数的函数示例:   https://i-blog.csdnimg.cn/blog_migrate/05097bd983f41acc3678e87a198f068e.png输出效果:
https://i-blog.csdnimg.cn/blog_migrate/c8097b05636ce50bb3e3cbb187aa2e52.png
   注意,   不 能 获 取 第 十 个 参 数 , 获 取 第 十 个 参 数 需 要   {10}。当n>=10时,需要利用${n}来获取参数。   另外,另有几个特别字符用来处理参数:    https://i-blog.csdnimg.cn/blog_migrate/c5401a2d178a6d38d0a44a0bf24b8d7c.png        1.9 数组

1 界说数组


   数组中可以存放多个值。Bash Shell   只支持一维数组(不支持多维数组),初始化时不需要界说数组大   小(。   与大部分编程语言类似,数组元素的下标由0开始。   Shell   数组用括号来表现,元素用"空格"符号分割开,语法格式如下:   array_name=(value1 value2 value3 ... valuen)    1.1 实例    https://i-blog.csdnimg.cn/blog_migrate/d1ba47393f56253883dcb2d4a3fce5b5.png读取数组元素值的一样平常格式是:
2.1 实例
https://i-blog.csdnimg.cn/blog_migrate/0c6fb595e29990699fb350017512d807.png
执行脚本,输出效果如下所示:  
https://i-blog.csdnimg.cn/blog_migrate/dc31b4ab21da7de7442528edd424d937.png
   2.2 获取数组中的所有元素     利用@   或   *   可以获取数组中的所有元素,比方:    https://i-blog.csdnimg.cn/blog_migrate/e0e98650549cd946e3095dde2037fd58.png执行脚本,输出效果如下所示:
https://i-blog.csdnimg.cn/blog_migrate/9f4b9b203472aebcb16a05e4fc43a29e.png
   2.3 获取数组的长度     获取数组长度的方法与获取字符串长度的方法类似,比方:   https://i-blog.csdnimg.cn/blog_migrate/c12261e80aee9bec340d0eb7a44b5075.png执行脚本,输出效果如下所示:
https://i-blog.csdnimg.cn/blog_migrate/0759b9f7d6013e335c5556cbdf43fb0a.png
   3 遍历数组

3.1 方式一
https://i-blog.csdnimg.cn/blog_migrate/2bfbfc0b3190ff5c7b2eaeae821380f0.png
3.2 方式二
https://i-blog.csdnimg.cn/blog_migrate/93279faa0674458c85b7631ad1d27ac4.png
    1.10 加载其它文件的变量

https://i-blog.csdnimg.cn/blog_migrate/8d428c7c030065595cd08fade82b1443.png
1 简介


   和其他语言一样,   Shell    也可以包含外部脚本。如许可以很方便的封装一些公用的代码作为一个独立的      文件。      Shell 文件包含的语法格式如下:   https://i-blog.csdnimg.cn/blog_migrate/1d40b84766a694cc32692e360c2e6183.png   
2 训练


   界说两个文件    test1.sh   和   test2.sh   ,在   test1   中界说一个变量   arr=(java c++ shell),   在   test2   中对   arr   进行循      环打印输出。      第一步: vim test1.sh    https://i-blog.csdnimg.cn/blog_migrate/a44da656540c95328475191f623f6e57.png    第二步: vim test2.sh
https://i-blog.csdnimg.cn/blog_migrate/5c3fcc68af96340a3a477813926457ca.png
第三步: 执行 test2.sh
https://i-blog.csdnimg.cn/blog_migrate/ee6c62b26d2df8d0d475e8d6861ce3a2.png
   利益    :      1.    数据源 和 业务处理 分离      2.    复用 代码扩展性更强   

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 【Shell】算术运算符、流程控制、函数利用、数组以及加载其它文件的变量