加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_汕头站长网 (https://www.0754zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

Linux学习之shell脚本——条件语句 与循环语句

发布时间:2023-02-03 11:04:13 所属栏目:Linux 来源:
导读:  if条件语句

  和其他语言类比,我们只需要了解if,if...else,if..else if...else...三种形式在shell中的使用。

  在shell中,最基本的if的语法如下

  if [ 条件 ]
  then
   符合条
  if条件语句
 
  和其他语言类比,我们只需要了解if,if...else,if..else if...else...三种形式在shell中的使用。
 
  在shell中,最基本的if的语法如下
 
  if [ 条件 ]
  then
      符合条件的执行逻辑
  fi
  或
 
  if [ 条件 ]; then
      符合条件的执行逻辑
  fi
  两种的区别在于if和then是否写在一行,如果写在一行使用;隔开。
 
  fi表示if语句的结束,及代码范围。
 
  注意:[]中的条件两边都有一个空格。
 
  if...else的在shell中的写法如下:
 
  if [ 条件 ]
  then
      符合条件执行的逻辑
  else
      不符合条件执行的逻辑
  fi
  if...else if...else在shell中的写法:
 
  if [ 条件 1 ]
  then
      做 1 的事情
  elif [ 条件 2 ]
  then
      做 2 的事情
  elif [ 条件 3 ]
  then
      做 3 的事情
  else
      做其他事情
  fi
  最后看一个例子:
 
  #!/bin/bash
 
  if [ $1 = "one" ]
  then
    echo "1"
  elif [ $1 = "two" ]
  then
    echo "2"
  else
    echo "3"
  fi
  在if判断的条件里,使用的是=号,这有区别于其他编程语言,但同样shell可以使用==号。注意=号两边有空格,如果不加空格,会认为是赋值操作。
 
  很简单,就是判断输入,显示不同的结果,看一下执行结果
 
  [root@iZ2zebizp6le568407aeayZ shell]# ./condition.sh  two
  2
  条件测试
 
  if中关键的便是判断条件,那么可以做哪些条件判断呢?
 
  字符串
 
  数字
 
  测试文件
 
  与,或,非判断条件
 
  注意:他们的使用方式不同。
 
  与和或是以[]为一个整体,如下
 
  if [ 条件 ] && [ 条件 ]
  then
      符合条件的执行逻辑
  fi
  而非的使用方式如下
 
  if [ ! 条件 ]
  then
      符合条件的执行逻辑
  fi
  case 多条件选择
 
  在最初的if中编写了例子
 
  if [ $1 = "one" ]
  then
    echo "1"
  elif [ $1 = "two" ]
  then
    echo "2"
  else
    echo "3"
  fi
  可以将其修改为case语句:修改之后的如下
 
  #!/bin/bash
 
  case $1 in
      "one")
          echo "1"
          ;;
      "two")
          echo "2"
          ;;
      *)
      echo "3"
      ;;
  esac
  case $1 in:类似于其他语言的switch(xxx)一样。
 
  "one"):匹配项,类似于case X:。
 
  echo "1":符合匹配项执行的逻辑。
 
  ;;: 类似于break;结束。
 
  *):类似于default。
 
  esac:case语句的结束标记。
 
  注意:匹配项可以用正则表达式进行匹配。
 
  看一下运行的结果
 
  [root@iZ2zebizp6le568407aeayZ shell]# ./condition_case.sh two
  2
  while 循环
 
  while循环的语法如下:
 
  while [ 条件 ]
  do
      做某些事
  done
  或
 
  while [ 条件 ]; do
      做某些事
  done
  注意:条件为真是,才会做do之后的逻辑,为什么强调这个呢linux语句,因为shell中有一个until语法。和其正好相反。
 
  until循环
 
  while循环表示如果条件为真,则执行do中的逻辑,而until和while正好相反,虽然语法类似
 
  until [ 条件 ]
  do
      做某些事
  done
  或
 
  until [ 条件 ]; do
      做某些事
  done
  但是,其是当条件为false是,才会走do之后的逻辑。
 
  for循环
 
  for循环的语法如下:
 
  for 变量 in '值1' '值2' '值3' ... '值n'
  do
      做某些事
  done
  当然我们可以在in之后不用谢一大串,而是用变量去代替。
 
  #!/bin/bash
 
  fileList=`ls`
  for file in $fileList
  do
    echo "file found : $file"
  done
  首先通过ls命令查找当前目录下的所有文件。
 
  其次通过for循环遍历变量,并打印。
 
  运行的结果如下:
 
  [root@iZ2zebizp6le568407aeayZ shell]# ./for.sh
  file found : condition_case.sh
  file found : condition.sh
  file found : for.sh
  file found : read_variable.sh
  file found : test.sh
  file found : variable_array.sh
  file found : variable_porams.sh
  file found : variable.sh
 

(编辑:云计算网_汕头站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!