位置变量;if;for循环

向脚本传递参数就是用位置参数变量实现

传递给命令的参数称为位置参数  ls  /etc/var

Myscript.sh  argu1 argu2 ….${10}  ${11}…

  引用方式 :$1就是引用整个脚本位置参数的第一个,第一个会自动保存在$1

             $2就是引用整个脚本位置参数的第二个,第二个会自动保存在$2

         ….

blob.pngblob.png


轮替;

Shft [n]:一次轮替n个参数

blob.png

blob.png


上面例子的引申

blob.png

blob.png


练习

写一个脚本,通过命令传递两个文本文件路径给脚本,计算其空白行数之和

blob.png
blob.png


特殊变量:

  $0  :所执行的脚本文件路径本身

blob.pngblob.png

$#  :看传了多少个参数

blob.pngblob.png

$*   :所有参数,ni  wo  ta

$@  :所有参数,ni wo ta

 

练习,通过命令传递两个文本文件路径给脚本,计算

其空白行数之和,如果给的路径小于两个,提示:至少得输入两个路径,并且退出

blob.pngblob.png


过程式编程语言的代码执行顺序:

  顺序执行:逐条执行,一个挨一个

  选择执行:每一种编程语言都会用到

      代码有一个分支:条件满足时,才会执行

      代码有两个或以上的分支:只会执行其中一个满足条件的分支

  循环执行

     代码片段(循环体)要执行01或多个来回

 

选择执行:

1)&& , ||

 (2) if语句:可嵌套

 (3)case语句:简化多分枝的if语句

      ·单分支的if语句

           if  测试条件;  then (如果测试条件为真,那么就怎么怎么)(此时测试条件后面要加”;“或者不加“;”就把后面的then单独换行写

               If-true代码分支

           fi 结束

 

 

      ·双分支的if语句

           if  测试条件;  then

               If-true条件为真时执行的分支,分支里可以有n个语句

           else

               If-false条件为假时的分支

          · fi 结束

 

     ·多分枝的if语句(测试条件不光有真假,还有如果如果如果否则)

           if  测试条件1;  then

             条件1为真分支,代码执行

           elif 测试条件2then

 

              条件2为真分支

           elif 测试条件3then

              条件3为真分支

           …

           elif 测试条件nthen

              条件n为真分支

           else

              所有条件均不满足时的分支

           fi

        

          注意:即便多个条件可能同时都能满足,分支只会执行其中一个,哪个首先测试为真就执行哪个。如果第一个为真就执行第一个,后面的不考虑,如果所有都不为真,就执行else

          注意:if语句可嵌套

 

 

练习: 单分支

通过参数传递一个用户名给脚本,此用户不存在时则添加之

blob.pngblob.png


练习:如果用户不给参数,提示:要输入信息,并给2的返回值

blob.png

blob.png


练习:双分支

  如果用户存在,提示:用户已经存在,否则添加

blob.png
blob.png



练习:多分枝

脚本参数传递一个文件路径给脚本,判断此文件的类型

blob.png

blob.png

练习:多分枝

1,脚本参数传递一个文件路径给脚本,此参数为用户名

   根据其ID号来判断用户类型

   0:管理员

   1-499:系统用户

   500+:登录用户

blob.pngblob.png

blob.pngblob.png

2,写一个脚本

 (1)列出如下菜单给用户

   disk)show disks info

   Mem)show memory info

   Cpu )show cpu info

  *)quit

 (2)提示用户给出自己的选择,而后显示对应其选择的相应系统信息

blob.png

练习:1,通过命令行给定两个数字,输出其中较大的数值

blob.png

blob.png

循环执行:将一段代码重复执行0次,1次或多次

   两个关键要点

        1,进入条件:什么时候执行,要不要执行,条件满足时,才进入循环

        2,退出条件:每一个循环都应该有退出条件,以有机会退出循环

  

Bash脚本的三种循环方式

   1for    2while    3until23几乎没什么区别,除了进入和退出的条件是相反的)

 

   For循环的两种格式

     1,遍历列表

     2,控制变量

 

   遍历列表:

      for VARAIBLE in LIST;do

          循环体

      Done

 

进入条件:只要列表有可用元素,即可进入循环

退出条件:列表中的元素遍历完成

 

LIST的生成方式

  1,直接给出

  2,整数列表

      (a{start..end} 自动展开

       (b) seq [start [step]] end

          seq 10就是1-10     

          seq 5  10就是5-10  

          seq 1 2 10就是奇数列表  1 3 5 7 9

          seq 2 2 10就是偶数列表  2 4 6 8 10

  3,返回列表的命令,例如ls  cat

  4,glob(通配)

  5,变量引用

     $@  $*

  …

 

blob.png

blob.png

/tmp下创建10个临时文件,叫f1f10

blob.png

blob.png

100以内所有正整数之和

blob.png

blob.png

blob.png

blob.png

原创文章,作者:wutianyou,如若转载,请注明出处:http://www.178linux.com/34542

(0)
wutianyouwutianyou
上一篇 2016-08-15
下一篇 2016-08-15

相关推荐

  • Linux系统的软链接和硬链接

    Linux的链接是一种共享文件和访问它的用户的若干目录项之间建立联系的一种方法。一共分为两种链接,分别是软链接和硬链接。 一、硬链接 1、硬链接的本质上是一个文件,它们除了名字不一样,其他都一样,占用的空间是一个。硬链接会增加文件的链接数。如下图 (1)建立硬链集之前     (2)建立硬链接之后 2、删去一个链接名,链接数减一…

    Linux干货 2016-10-22
  • 第一周博客作业

       第一次自己动手写博客,而不是转载或者收藏,还是满忐忑的,希望是一个好的开始,以下内容均为依照记忆或者说学习到的知识总结,之后会另写一篇博文根据网络查询到的更严谨完整的答案作为总结。一、描述计算机的组成及其功能。答:计算机主要有五个部分组成,分别是:运算器、控制器、存储器、输入设备、输出设备。  1、控制器为整个计算机工作中的核心,负责调度所有组件之间的…

    Linux干货 2016-12-04
  • grep与基本正则表达式基本用法

    正则表达式:Regual Expression  REGEXP      由一类特殊字符及文本字符所编写的模式,其中有些字符不表示其字母意义,而是用于表示控制或通配的功能;       分两类:             &nbsp…

    Linux干货 2016-11-03
  • Linux救援模式

        学习了Linux的启动流程,为了加深理解,今天做了如下的实验:删除掉Linux系统在启动过程中比较重要的几个文件,查看启动时出现的现象。加深对知识的理解。学习机器因为某些文件的缺失的修复方式。     一、删除grub.conf    &nb…

    Linux干货 2016-11-23
  • shell编程2

    组合测试条件  第一种方式:        COMMAND1 && COMMAND2 并且        COMMAND1 || COMMAND2 或者        ! COMMAND 非   &nbs…

    Linux干货 2016-08-21
  • Linux任务计划

    Linux任务计划,周期性任务执行         未来的某时间点执行一次某任务:at, batch          周期性运行某任务:crontab                 &n…

    Linux干货 2016-12-31