小萌新—> Linux高手系列:包管理【二】

上期回顾:小萌新—> Linux高手系列:包管理作为一个有追求的测试,如何从一个运维小萌新成长为一个Linux 高手?请持续关注我们的《小萌新 -> Linux高手系列文章》。今天这篇文章将给大家介绍 Shell 脚本中的流程控制。

Shell 脚本介绍Shell 脚本是 由一些按照一定格式组合起来的 Shell 命令组成。不需要编译就可以直接执行,它是边解释边执行的。Linux 系统提供多种不同的Shell以供选择。常用的有 Bourne Shell(简称sh)、C-Shelll(简称csh)、Korn Shell(简称ksh)和Bourne Again Shell (简称bash)。通常在Shell 脚本中,第一行都有类似这样的语句:#!/bin/bash这句话的意思是指定一款在/bin/下名字叫 bash 的 Shell 解释器,来解释脚本中的命令。如果系统用的是其他的解释器,就要将/bin/bash 改成相应的名字。示例:hello.sh#!/bin/bashecho "Hello World!“注:如果没有执行权限的需要添加执行权限,chmod +x hello.sh ;除了第一行,后面的'#'号就是注释符,'#'号后面的就是注释内容,会被解释器忽略。在使用 Shell 脚本中完成一系列命令操作时,总是离不开流程控制语句,以便我们对于不同情况进行处理。下面正式开始介绍 Shell 脚本中的流程控制。if 语句在 Shell 脚本中经常需要通过判断一定条件后,决定执行什么样的命令,我们通常使用 if 语句达到此目的。if 语句语法:if [ condition ]thencommandfi注:[]两边需要有空格;最后需要以 fi 结束 if 语句if语句中的数值判断:

使用 test 命令进行判断:

示例代码:# 比较两个数值num=15if [ $num -gt 10 ]   #  []两边要有空格thenecho "more"elif [ $num -eq 10 ]thenecho "equal"elseecho "less"fi# 比较两个字符串str1="testops"str2="TestOps"if test $str1 = $str2thenecho '两个字符串相等!'elseecho '两个字符串不相等!'fi# 判断文件是否存在cd /binif test -e ./bashthen# do somethingelse# create or copy a fileficase 语句Shell 脚本中 case 语句为多选择语句。可以用 case 语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。case 语句语法:case 判断条件 in值1)command;;值2)command;;*)commandesac示例:echo '输入 1 到 4 之间的数字:'echo '你输入的数字为:'read aNumcase $aNum in1)  echo '你选择了 1';;2)  echo '你选择了 2';;3)  echo '你选择了 3';;4)  echo '你选择了 4';;*)  echo '你没有输入 1 到 4 之间的数字';;esacfor 循环for 循环是比较常用的循环结构,shell 中的 for 循环与 java 中类似,不同的是这里用 do done 代替了 java 中的大括号 { }。示例:# 直接使用指定数据进行循环for loop in 1 2 3 4 5doecho "The value is: $loop"done# 类Java语法for((i=1;$i<=20;i++))docommanddone# 使用某个可循环的变量进行循环arr=(1 2 3 a b)for a in ${arr[*]}doecho $adone# 使用 seq 命令来决定循环次数num=10for loop in `seq 1 $num`doecho "The value is: $loop"donewhile 循环Shell 脚本中的 while 循环与 java中类似,当判断条件 condition 结果为 true 时,执行循环体中的 command 操作语句;不同的是这里用 do done 代替了java 中的大括号 { }。示例:# 使用条件判断来决定循环终止num=1while(( $num<=5 ))doecho $numlet "num++"done# 无限循环while truedo# do somethingdone结语

(0)

相关推荐