小萌新—> 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/bash

echo “Hello World!“

注:

如果没有执行权限的需要添加执行权限,chmod +x hello.sh ;

除了第一行,后面的’#’号就是注释符,’#’号后面的就是注释内容,会被解释器忽略。

在使用 Shell 脚本中完成一系列命令操作时,总是离不开流程控制语句,以便我们对于不同情况进行处理。

下面正式开始介绍 Shell 脚本中的流程控制。

if 语句

在 Shell 脚本中经常需要通过判断一定条件后,决定执行什么样的命令,我们通常使用 if 语句达到此目的。

if 语句语法:

if [ condition ]

then

command

fi

注:

[]两边需要有空格;

最后需要以 fi 结束 if 语句

if语句中的数值判断:

使用 test 命令进行判断:

示例代码:

比较两个数值

num=15

if [ $num -gt 10 ] # []两边要有空格

then

echo "more"

elif [ $num -eq 10 ]

then

echo "equal"

else

echo "less"

fi

比较两个字符串

str1=”testops”

str2=”TestOps”

if test $str1 = $str2

then

echo '两个字符串相等!'

else

echo '两个字符串不相等!'

fi

判断文件是否存在

cd /bin

if test -e ./bash

then

# do something

else

# create or copy a file

fi

case 语句

Shell 脚本中 case 语句为多选择语句。可以用 case 语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。

case 语句语法:

case 判断条件 in

值1)

command

;;

值2)

command

;;

*)

command

esac

示例:

echo ‘输入 1 到 4 之间的数字:’

echo ‘你输入的数字为:’

read aNum

case $aNum in

1)  echo '你选择了 1'

;;

2)  echo '你选择了 2'

;;

3)  echo '你选择了 3'

;;

4)  echo '你选择了 4'

;;

*)  echo '你没有输入 1 到 4 之间的数字'

;;

esac

for 循环

for 循环是比较常用的循环结构,shell 中的 for 循环与 java 中类似,不同的是这里用 do done 代替了 java 中的大括号 { }。

示例:

直接使用指定数据进行循环

for loop in 1 2 3 4 5

do

echo "The value is: $loop"

done

类Java语法

for((i=1;$i<=20;i++))

do

           command

done

使用某个可循环的变量进行循环

arr=(1 2 3 a b)

for a in ${arr[*]}

do

echo $a

done

使用 seq 命令来决定循环次数

num=10

for loop in seq 1 $num

do

echo "The value is: $loop"

done

while 循环

Shell 脚本中的 while 循环与 java中类似,当判断条件 condition 结果为 true 时,执行循环体中的 command 操作语句;不同的是这里用 do done 代替了java 中的大括号 { }。

示例:

使用条件判断来决定循环终止

num=1

while(( $num<=5 ))

do

echo $num

let "num++"

done

无限循环

while true

do

# do something

done

结语

关于 Shell 脚本的其他用法请关注我们的《运维从零开始课程》哟~

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/186688.html

(0)
联系我们
联系我们
分享本页
返回顶部