AI智能
改变未来

(十五)、shell脚本之简单控制流结构


一、基本的控制结构

1、控制流

常见的控制流就是if、then、else语句提供测试条件,测试条件可以基于各种条件。例如创建文件是否成功、是否有读写权限等,凡是执行的操作有失败的可能就可以用控制流,注意控制流的真为0,假为1。

  • 单层if语句

  if 条件;then if 条件

    命令 或 then 命令

  fi fi

  if后跟条件,如果条件为真,执行then后面的命令,而then必须放在新行,fi结束控制流,可以理解为endif;我们更推荐第一种写法,这样可以更加增强代码的可读性,使得代码层次更加清晰,下面的例子简单阐述if…else语句。

举例:$ vim simple_if

   #!/bin/sh

   if [ \”159\” -lt \”520\” ]; then

     echo \”yes, 159 is less then 520\”

   fi

  • 输入变量测试

  通过测试设置为接受用户输入的变量可以测知用户是否输入信息,下面的例子中测试用户键入 enter后变量addr的值是否包含任何信息。

  $ vim iftest2

#!/bin/sh

   echo \”Enter your addr:\”

   read ADDR

   if [ \”$ADDR\” = \”\” ]; then

    echo \”you did not enter any information\”

   fi

  • grep输出检查

  对grep使用if语句找出grep是否成功返回信息

  #!/bin/sh

  if grep \”liming\” name.file > /tmp/null 2>&1; then

    echo \”liming is in the file\”

  else

    echo \”no liming is not in the file\”

  fi

2、if…else语句

if 条件;then

  命令1

else

  命令2

fi

检查运行脚本的用户,环境变量用作测试条件,即LOGNAME是否包含root值,这类语句是加在脚本开头作为安全性准则的普遍方法,

#!/bin/sh

if [ \”$LOGNAME\” != \”root\” ]; then

  echo \”you need to be root to run this script\” > &2

  exit 1

else

  echo \”yes indeed you are $LOGNAME proceed\”

fi

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » (十五)、shell脚本之简单控制流结构