打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
小萌新—> 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
结语
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
40 个简单又有效的 Linux Shell 脚本示例
Linux中Shell循环结构for用法笔记
系统管理中 bash shell 脚本常用方法总结
RHCE 系列(四): 使用 Shell 脚本自动化Linux 系统维护任务
10 个增加 UNIX/Linux Shell 脚本趣味的工具 | Linux 中国
Linux中Bash、Zsh 和 Fish, 我应该选哪个?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服