Shell流程控制
来源:互联网 发布:淘宝的中国质造 编辑:程序博客网 时间:2024/06/05 19:35
While循环简单案例:
while语句结构
while 条件语句 do action done; 实例1: #!/bin/sh i=10; while [[ $i -gt 5 ]];do echo $i; ((i--)); done; 运行结果:======================== sh while1.sh 10 9 8 7 6
实例2:(循环读取文件内容:)
#!/bin/shwhile read line;doecho $line;done < /etc/Monkey.sh;运行结果:===================sh while2.sh# Do not remove the following line, or various programs# that require network functionality will fail.<precode_snippet_id="2005939"#!/bin/shint=1while(( $int<=5 ))do echo $int let "int++"done
实例3:while循环可用于读取键盘信息。
echo '按下 <CTRL-D> 退出'echo -n '输入你最喜欢的电影名: 'while read FILMdo echo "是的!$FILM 是一部好电影"done
if命令
if 语句语法格式:if conditionthen command1 command2 ... commandNfi写成一行(适用于终端命令提示符):if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo"true"; fi
if else 和 if else-if else结合使用
a=10b=20if [ $a == $b ]then echo "a 等于 b"elif [ $a -gt $b ]then echo "a 大于 b"elif [ $a -lt $b ]then echo "a 小于 b"else echo "没有符合的条件"fi
if else语句经常与test命令结合使用,如下所示:
num1=$[2*3]num2=$[1+5]if test $[num1] -eq $[num2]then echo '两个数字相等!'else echo '两个数字不相等!'fi 输出结果:两个数字相等!
for 循环
数组遍历
for i in *do echo $idone!: <<!以下是for脚本所在目录,for循环列表的结果:DiTingLinux_rmdjtshellvariate.sh打怪升级模块!
另一种遍历方式
ls > ls.txtfor i in $(cat ls.txt)do echo $idone!
函数传递
#注意 $@ 加上引号和不加是有区别的
nubset(){ for str in "$@" do echo $str done}nubset 1 2 3 4nubset 1,2,3,4nubset "this is nub"nubset "this2,is2,nub2"nubset we will be fine
自然数的遍历使用 {}
for i in {1..5}do echo "go $i home"done for i in {0..10..2}do echo "go $i home"done 经典循环for (( i = 0; i < 10; i++ ))do echo $idone
以上代码均经过测试,可用,点击进入原创地址
复合型实例
nub=(137 237 337 437 537 637)employee=(小明 小张 小红 小王 小竹 小胡)setnub=6: <<!array_set(){ for (( i = 0; i < $setnub; i++)); do if [[ $@ -eq $nub[i] ]];then echo ${nub[$i]}${employee[$i]} fi done }array_set 437!for (( i = 0; i <$setnub; i++ )); do echo ${nub[$i]}${employee[$i]}done
--------------------------------------无限循环命令------------------
:<<!while :docommanddone#或者while truedocommanddone#或者for (( ; ; ))!
until命令
until循环执行一系列命令直至条件为真时停止。
until循环与while循环在处理方式上刚好相反。
一般while循环优于until循环,但在某些时候—也只是极少数情况下,until循环更加有用。
until 语法格式:
until conditiondo commanddone
Case
#--下面的脚本提示输入1到4,与每一种模式进行匹配: ---
: <<!echo '输入 1 到 4 之间的数字:'echo '你输入的数字为:'read aNumcase $aNum in 1) echo '你选择了 1' ;; 2) echo '你选择了 2' ;; 3) echo '你选择了 3' ;; 4) echo '你选择了 4' ;; *) echo '你没有输入 1 到 4 之间的数字' ;;esac!
#---跳出循环------------break跳出后续循环---------------------------------
: <<!while :do echo -n "输入 1 到 5 之间的数字:" read aNum case $aNum in 1|2|3|4|5) echo "你输入的数字为 $aNum!" ;; *) echo "你输入的数字不是 1 到 5 之间的! 游戏结束" break ;; esacdone!#执行以上代码,输出结果为:: <<!输入 1 到 5 之间的数字:3你输入的数字为 3!输入 1 到 5 之间的数字:7你输入的数字不是 1 到 5 之间的! 游戏结束!
#---跳出循环------------continue---------------------------------
: <<!while :do echo -n "输入 1 到 5 之间的数字: " read aNum case $aNum in 1|2|3|4|5) echo "你输入的数字为 $aNum!" ;; *) echo "你输入的数字不是 1 到 5 之间的!" continue echo "游戏结束" ;; esacdone!
0 0
- [shell]Shell流程控制
- shell流程控制学习
- Shell流程控制语句
- shell流程控制
- 流程控制Linux Shell
- linux shell 流程控制
- shell语法-流程控制
- shell流程控制语句
- shell-流程控制 if
- Shell 流程控制
- shell流程控制
- Shell流程控制
- shell--流程控制
- linux shell 流程控制
- Shell 流程控制
- shell 流程控制参数
- shell 流程控制
- Shell流程控制
- myeclipse导入项目时遇到的问题
- 重启电脑后,centos7下无法重启httpd问题
- Android 二维码ZXing使用详解
- Ubuntu 16.04 无法安装软件解决办法
- 欢迎使用CSDN-markdown编辑器
- Shell流程控制
- 控制台错误:在 publicId 和 systemId 之间需要有空格。
- poj 2236并查集
- FastDFS-nginx-module功能解释
- 浅谈服务器性能测试的全生命周期——从测试、结果分析到优化策略
- js篇 如何生成n-m之间的随机数
- android- Cause: Unknown command-line option '-X'.
- SharedPreference提交的commit与apply的区别
- 详解EBS接口开发之库存事务处理-物料批次导入