文章目录

  • 一、if语句
    • 1.基本语法
    • 2.注意事项
    • 3.示例演示
  • 三、case语句
    • 1.基本语法
    • 2.注意事项
    • 3.示例演示
  • 二、for循环
    • 1.基本语法
    • 2.示例演示
  • 四、while循环
    • 1.基本语法
    • 2.示例演示

一、if语句

1.基本语法

语法①:
if [ condition ];then
程序
fi

语法②:
if [ 条件判断式 ]
then
程序
fi

2.注意事项

(1)[ condition ],中括号和条件判断式之间必须有空格
(2)if后要有空格

3.示例演示

#!/bin/bashif [ $1 -lt "5" ]
thenecho "第一个参数小于5"
elif [ $1 -eq "5" ]
thenecho "第一个参数等于5"
elseecho "第一个参数大于5"
fiif [ $2 -lt "10" ];thenecho "第二个参数小于10"
elif [ $2 -eq "10" ];thenecho "第二个参数等于10"
elseecho "第二个参数大于10"
fi

运行结果:

三、case语句

1.基本语法

case $变量名 in
“值1”)
如果变量的值等于值1,则执行程序1
;;
“值2”)
如果变量的值等于值2,则执行程序2
;;
…省略其他分支…
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac

2.注意事项

(1) case行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。
(2) 双分号“;;”表示命令序列结束,相当于C语言中的break。
(3) 最后的“*)”表示默认模式,相当于C语言中的default。

3.示例演示

#!/bin/bashcase $1 in1)echo "参数是1";;2)echo "参数是2";;3)echo "参数是3";;*)echo "参数不是1、2、3";;
esac

运行结果:

二、for循环

1.基本语法

语法①:
for (( 初始值;循环控制条件;变量变化 ))
do
程序
done
语法②:
for 变量 in 值1 值2 值3…
do
程序
done

2.示例演示

程序1

#!/bin/bashsum1=0
sum2=0for ((i = 1; i <= 10; i++))
dosum1=$[$i+$sum1]
done
echo "for1 sum1 is $sum1"for j in "$*"
doecho "for2 this is $j"
donefor k in "$@"
doecho "for3 this is $k"
done

运行结果:

注意区分$*和 $@,上面的程序中将 & *和 $@都加了引号,看下面不加引号的程序:
程序2

#!/bin/bashsum1=0for ((i = 1; i <= 10; i++))
dosum1=$[$i+$sum1]
done
echo "for1 sum1 is $sum1"for j in $*
doecho "for2 this is $j"
donefor k in $@
doecho "for3 this is $k"
done

运行结果:

$*代表所有参数的整体, $@代表所有参数的集合,且每个参数仍然独立,对于 $@来说,加不加引号都一样,但是对于 $ *来说就有差别了,看下面的程序:
程序3

#!/bin/bashfor j in 1 2 3 4 5
do echo "for2 this is $j"
donefor k in "1 2 3 4 5"
doecho "for3 this is $k"
done

运行结果:

类比一下,有点像C语言的宏,对于用所有参数替代掉原来的$*,将程序1和程序2中的 & *用所有参数替代掉,就能类比程序3。

四、while循环

1.基本语法

while [ 条件判断式 ]
do
程序
done
只要涉及条件判断式,就要注意中括号和式子之间的空格

2.示例演示

#!/bin/bashsum=0
while [ $sum -lt 10 ]
doecho "sum 加了一次"sum=$[$sum+1]
done

运行结果:

Shell——流程控制(if、case、for、while)相关推荐

  1. shell 脚本比较字符串相等_LINUX快速入门第十六章:Shell 流程控制

    Shell 流程控制 和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?phpif (isset($_GET["q"])) { s ...

  2. Shell——流程控制

    Shell 流程控制 和Java.PHP等语言不一样,sh的流程控制不可为空,如(以下为PHP流程控制写法): <?php if (isset($_GET["q"])) {s ...

  3. Linux | Shell 学习笔记(二)Shell 流程控制 if、case、for、while| read读取输入 | 函数的使用 | cut、sed、awk、sort命令 +Demo

    文章目录 参考资料 运行环境 一.流程控制 1.1 if 判断 1.2 case 语句 1.3 for 循环 1.4 while 循环 二. read 读取控制台输入 三.函数 3.1 系统函数 ba ...

  4. linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例 --转载

    http://www.cnblogs.com/chengmo/archive/2010/10/14/1851434.html nux shell有一套自己的流程控制语句,其中包括条件语句(if),循环 ...

  5. linux shell 流程控制(条件if,循环【for,while】,选择【case】语句实例

    linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case).下面我将通过例子介绍下,各个语句使用方法. 一.shell条件语句(if ...

  6. linux shell 流程控制

    导读 和Java.PHP等语言不一样,linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case).下面我将通过例子介绍下,各个语句使 ...

  7. T-SQL:流程控制 4,Case 语句

    ylbtech-SQL Server:SQL Server-流程控制 4,Case 语句 SQL Server 流程控制中的 Case 语句. 1,Case 语句 1 --============== ...

  8. 3.Linux Shell流程控制

    1.if/else结构 if condition thenstatements elif condition thenstatements elsestatements fi 2.条件 与C语言不同的 ...

  9. false shell 判断_六、Shell流程控制-if判断语句

    1. shell中的运算 1.1 数学比较运算 -eq 等于 -ne 不等于 -lt 小于 -gt 大于 -le 小于等于 -ge 大于等于 浮点数的比较建议将数字等比放大至整数进行比较,例如 #比较 ...

最新文章

  1. mfc 应用程序 语言进行本地化
  2. 在CentOS 6.5 x86_64上安装libunwind的问题
  3. 共享打印机出错,错误代码0x00000bcb解决方法汇总
  4. JAVA JDBC详解
  5. android uid systemui,(android)system ui 内存优化
  6. python按行读取文件取消空白行_python去掉空白行的多种实现代码
  7. css旋转45度_css 渐变过渡2D
  8. FFmpeg纯净版解码 av_parser_parse2
  9. 游戏筑基开发之menset底层实现及C语言项目常见问题解决方案(C语言)
  10. python基于Flask构建Web服务,解决Flask数据请求中的跨域问题
  11. 菜鸟从零学习数据库(三)——存储过程
  12. 网易UI测试工具 Airtest
  13. eclipse快捷键(alt+/)不起作用的解决办法
  14. 方差公式初三_初中数学公式定理大全之方差
  15. 使用WarZone联机对战横扫千军(TA)指南
  16. Java基础篇——选择结构
  17. Ubuntu使用gzip与bzip2与rar和tar压缩解压
  18. Easy Excel 使用总结
  19. linux运行fuzzbunch,方程式0day ETERNALBLUE复现之Empire ampamp; Msfconsole下的she...
  20. 谷歌如何度量工程生产力

热门文章

  1. Sql语句中 case when .. 的两种写法
  2. [网络安全自学篇] 五十一.恶意样本分析之HGZ进程和网络行为动态分析及防御
  3. 网站开发之DIV+CSS简单布局网站入门篇(五)
  4. [Python爬虫] 在Windows下安装PIP+Phantomjs+Selenium
  5. Git之深入解析如何在应用中嵌入Git
  6. 中国大学MOOC 编译原理 第6讲测验
  7. Broken Keyboard (a.k.a. Beiju Text)
  8. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 小车黑线循迹、避障、遥控实验综合程序
  9. PaddlePaddle训练营——公开课——AI核心技术掌握——第1章迈入现代人工智能的大门——深度学习的基础算法——反向传播算法简介
  10. AI 质检学习报告——实践篇——第一步:python利用OpenCV打开摄像头并截图