Shell 学习(三)--流程控制

目录

  • Shell 学习(三)--流程控制

    • 1 if判断
    • 2 case 语句
    • 3 for循环
    • 4 while 循环

Shell 学习(三)--流程控制

1 if判断

  • 基本语法
if [ 条件判断式 ];then
程序
fi

或者

if[ 条件判断式 ]
    then
        程序
        elif[ 条件判断式 ]
            then
                程序
fi

注意事项:(1) [ 条件判断式 ],中括号和条件判断式之间必须要有空格。(2) 推荐使用第二种方式

?

  • 应用实例

案例: 编写一个shell程序,请输入参数,大于等于60,则输出“及格了”,如果小于60,则输出“不及格”

#!/bin/bash
if [ $1 -ge 60 ]
    then
        echo "及格了"
elif[ $1 -lt 60]
    then
        echo "不及格"
fi

2 case 语句

  • 基本语法

这个case语法很不一样,我开始很不习惯,有点像C的感觉

case $变量名 in
"值1")
    如果变量的值等于值1,则执行程序1
;;
"值2")
    如果变量的值等于值2,则执行程序2
;;
···省略其他分支···
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
  • 应用实例

案例:当命令行参数是1时,输出“周一”,当参数是2时,输出“周二”,其他情况输出other。

#!/bin/bash
case $1 in
"1")
    echo "周一"
;;
"2")
    echo "周二"
;;
*)
    echo "other"
;;
esac

3 for循环

  • 基本语法1
for 变量 in 值1 值2 值3 ..
do
    程序
done

应用实例

打印命令行输入的参数[会使用到$* 和[email protected]]

#!/bin/bash
#使用$*
for i in "$*"
do
    echo "the num is $i"
done

echo "====="
#使用[email protected]
for j in "[email protected]"
do
    echo "the num is $j"
done

执行后为这样:

  • 基本语法2

    这个语法就很像java中的for循环

for((初始值;循环控制条件;变量变化))
do
    程序
done

应用实例:从1加到100的值输出显示

但是这个很奇怪,前面判断条件都是用-gt -ge 来着。这里可以直接用<=

#!/bin/bash
#定义一个变量
SUM=0
for((i=0;i<=100;i++))
do
    SUM=$[$SUM+$i]
done
echo "sum=$SUM"

4 while 循环

  • 基本语法
while [ 条件判断式 ]
do
    程序
done

应用实例

案例:从命令行输入一个数n,统计从1+...+n 的值是多少

#!/bin/bash
SUM=0
i=0
while [$i -le $1]
do
    SUM=$[$SUM+$i]
    i=$[$i+1]
done
echo "sum=$SUM"

原文地址:https://www.cnblogs.com/jianshuai520/p/11806881.html

时间: 2024-10-02 16:24:32

Shell 学习(三)--流程控制的相关文章

shell脚本编程——流程控制

shell脚本编程--流程控制 目   录 一. if 二. case 三. for 四. while 五. until 六. 综合应用 一.if 1.语法 (1)单分支 if  判断条件:then fi (2)双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi (3)多分支 if 判断条件1; then 条件为真的分支代码 elif 判断条件2; then 条件为真的分支代码 elif 判断条件3; then 条件为真的分支代码 else 以上条件都为假

shell脚本之流程控制

shell脚本之流程控制 shell脚本之流程控制 条件语句 条件判断 循环语句for,while,until for循环 while循环 until循环 循环控制语句continue 循环控制语句break 循环控制shift命令 创建无限循环 while的特殊用法 for的特殊用法 select循环与菜单 select与case 信号捕捉trap 条件语句 选择执行: 注意:if语句可嵌套 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为

Swift中文教程(三)--流程控制

原文:Swift中文教程(三)--流程控制 Swift用if和switch编写条件控制语句,用for-in,for,while和do-while编写循环.条件控制语句和循环语句中,小括号是可选的,但花括号包住这个循环体是必须的: 1 let individualScores = [75, 43, 103, 87, 12] 2 var teamScore = 0 3 for score in individualScores { 4 if score > 50 { 5 teamScore += 3

java学习之流程控制之if

学编程吧java学习之流程控制之if发布了,欢迎大家通过xuebiancheng8.com来访问 java中的流程控制语句主要包括选择语句,循环语句,其中选择语句又包括if语句,switch...case语句,循环语句包括while,do...while和for循环等机构.下面来分析分析if...else的用法 if选择结构又分为if单分支结构,if...else...双分支结构,if...else if....else if ...else等多分支结构 单分支结构,顾名思义只有一个if结构.

Shell命令和流程控制

Shell命令和流程控制 在shell脚本中可以使用三类命令: 1)Unix 命令: 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令.这些命令通常是用来进行文件和文字操作的. 常用命令语法及功能 echo "some text": 将文字内容打印在屏幕上 ls: 文件列表 wc –l filewc -w filewc -c file: 计算文件行数 计算文件中的单词数 计算文件中的字符数 cp sourcefile destfile: 文件拷贝 mv

python 学习之 基础篇三 流程控制

前言: 一. python中有严格的格式缩进,因为其在语法中摒弃了“{}”来包含代码块,使用严格的缩进来体现代码层次所以在编写代码的时候项目组要严格的统一器缩进语法,一个tab按键设置为四个空格来缩进,防止缩进不规范导致的启动失败. 二.在python中变量(标识符)命名和一般的高级语言没有什么不同都推荐使用,字母.下划线.数字命名,其中数字不能作为标识符的开头,python中变量名是区分大小写的(所以可以使用驼峰命名法去命名,也就是英文单词的字母首字母大写其余的小写).以下划线开头的标识符是有

F# 学习笔记(流程控制)

流程控制关键字 if: let mutable x = 17*17 - 15*15 if x % 2 = 1 then x <- x - 1 while: [<EntryPoint>] let main argv = let nr_fib n = let mutable a,b,i = 1I,1I,1 while i < n do let t = b b <- a+b a <- t i <- i+1 a (nr_fib 10).ToString() |> p

shell - 变量,流程控制

1. 查看内存 free -m free -m|awk '/^Mem/ {print $3/$2*100}' 2. 监控内存使用超过80 报警 free_use = free -m|awk '/Mem/ {print $3/$2*100}' echo ${free_use%.*} # 从后往前删,用% if [ ${free_use%.*} -gt 80];then echo "内存超80" fi 3. 创建10个文件,将txt 改为txt.bak, 把bak文件打包为123, 还原文

[原创]Scala学习:流程控制,异常处理

1.流程控制 1)do..while 1 def doWhile(){ 2 var line="" 3 do{ 4 line = readLine() 5 println("readlineConetent" + line ) 6 }while(line != " ") 7 } 2)for 方式一: 1 for (arg <-args) 2 println(arg) 方式二: 1 for (i <- 1 to 10 if i % 2

Shell基础学习(六) 流程控制

1.if if的语法格式 if conditon then command1 command2 ``` commandn fi 2.if else if conditon then command1 command2 ``` commandn else command1 command2 ``` commandn fi 3.if elseif else if conditon then command1 command2 ``` commandn else if conditon command