shell脚本之 if,case,for的用法

目录
一.条件选择:if语句
二.条件判断:case语句
三.for循环

一.条件选择:if语句

  1. 单分支
    if 判断条件;then
    条件为真的分支代码
    fi
    例子:判断一个数字是否等于10
    #!/bin/bash
    read -p ‘输入一个数字‘ num
    if [ $num -eq 10 ];then
    echo 该数字等于10
    fi
  2. 双分支
    if 判断条件; then 条件为真的分支代码
    else 条件为假的分支代码
    fi
    例子:判断一个数字是否大于10
    #!/bin/bash
    read -p ‘输入一个数字‘ num
    if [ $num -gt 10 ];then
    echo 该数字大于10
    else
    echo 该数字不大于10
    fi
  3. 多分枝
    if 判断条件1; then 条件为真的分支代码
    elif 判断条件2; then 条件为真的分支代码
    elif 判断条件3; then 条件为真的分支代码
    else 以上条件都为假的分支代码
    fi
    例子:判断一个数字的范围
            #!/bin/bash
            read -p ‘输入一个数字‘ num
            if [ $num -lt 10 ];then
                 echo 该数字小于10
            elif [ $num -ge 10 -a $num -lt 20  ];then
                  echo 该数字大于等于10小于20
            elif [ $num -ge 20 -a $num -lt 50 ];then
                  cho 该数字大于等于20小于50
             else
                 echo 该数字大于等于50
            fi      

    二.条件判断case语句

            case $变量名 in
            条件1)
             分支1;;
            条件2)
              分支2;;
            默认条件 *)
            默认分支;;
            esac
                       每个条件后面跟  )结尾 每个分支后面以 ;; 结束
     例子
                 写一个能判断yes/no的脚本,(大小写均能识别,yes九种可能,no四种可能)、
                          #!/bin/bash
            read -p "请输入yes|no: " q
            case $q in
             [Yy][Ee][Ss]|[Yy])
            echo "yes";;
            [Nn][Oo])
            echo "no";;
                 *)
            echo "请输入正确的格式"
            esac

    三.for循环

    执行机制:依次将列表中的元素赋值给“变量名”; 每次赋值后即执 行一次循环体; 直到列表中的元素耗尽,循环结束
    for 变量名 in 列表;do
    循环体
    done

    例1 利用for循环 计算1到10所有正整数之和
    #!/bin/bash
    let s=0
    for n in echo {1..10};do
    s=$[$s+$n]
    echo $s
    done
    例2 利用for循环打印99乘法表
    #!/bin/bash
    for i in {1..9};do
    for n in seq 1 $i;do
    echo -n -e " $i"x"$n=$[i*n] "
    done
    echo
    done

    (每一个for要对应一个done)

原文地址:http://blog.51cto.com/13572749/2088232

时间: 2024-10-01 16:04:51

shell脚本之 if,case,for的用法的相关文章

20.1-4 shell脚本介绍 shell脚本结构和执行 date命令用法 shell脚本中的变量

20.1 shell脚本介绍20.2 shell脚本结构和执行20.3 date命令用法%w 星期几 %W今年的第几周cal是显示日历的时间戳可以相互查询 20.4 shell脚本中的变量 原文地址:http://blog.51cto.com/13450039/2104595

shell脚本介绍 shell脚本结构和执行 date命令用法 shell脚本中的变量

一.shell脚本介绍shell脚本要想写好,必须通过不断地去练习写才能写好,没有捷径要在我们拿到一个需求的时候有一个脚本的大致思路,想到需求怎么去实现shell脚本可以大大提高我们的工作效率二.shell脚本结构和执行[[email protected] ~]# mkdir shell //创建一个shell文件夹,存放实验的shell脚本[[email protected] ~]# cd shell/[[email protected] shell]# ls[[email protected

shell脚本学习笔记之sed命令用法

sed基本用法 sed:stream editor 行编辑器 sed:模式空间 将匹配的文本内容储存到模式空间中 默认不编辑原文件,仅对模式空间中的数据做处理,而后,处理结束后,架构模式空间的内容显示 sed -n -i:直接修改原文件 -e script -e script:可以同时执行多个脚本 -f file sed -f /scripts  file -r:表示使用扩展正则表达式 sed 'adresscommand' file... -n:静默模式,不再默认显示模式空间中的内容,即只显示

shell脚本编程之变量的小用法

变量赋值 ${parameter:-word}:如果parameter为空或未定义,则变量展开为"word":否则,展开为parameter的值: ${parameter:+word}:如果parameter为空或未定义,不做任何操作:否则,展开为"word"值: ${parameter:=word}:如果parameter为空或未定义,则变量展开为"word",并将展开后的值赋值给parameter: ${parameter:?word}:如果

shell脚本学习笔记之grep命令用法

***grep基本用法 grep [选项] [模式] [文件..] 选项 -c 只输出匹配行的数量 -i 搜索时忽略大小写 -h 查询多文件时不显示文件名 -l 只搜索匹配的文件名,而不列出具体的匹配行 -n 列出所有的匹配行,并显示行号 -s 不显示不存在或无匹配文本的错误信息 -v 显示不包含匹配文本的所有行 -w 匹配整词 -x 匹配整行 -r 递归搜索,不仅所属当前工作目录,而且搜索子目录 -q 禁止储存任何结果,以推迟状态表示所属是否成功 -b 打印匹配行距文件的头部的偏移量,以字节为

shell 脚本中使用case查看登陆用户

#! /bin/bash case $USERNAME in "student")echo u r using student;; "leonard")echo u r using leonard;; *)echo u r using other account;; esac

Shell脚本之:case

case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构. case语句的语法 case 值 in 模式1) command1 command2 command3 ;; 模式2) command1 command2 command3 ;; *) command1 command2 command3 ;; esac 取值后面必须为关键字 in,每一模式必须以右括号结束.其中;;与其他语言中的 break 类似 下面是case的一个例子 #!/bin

shell脚本 传参数 case for

$ cat openstack_install.sh #!/usr/bin/env bash function usage { echo "Usage:$0 [OPTAION]..." echo "master install openstack master in this system." echo "compute install openstack compute in this system." exit } function proc

​老男孩教育每日一题-第98天-shell知识点:shell脚本中字符串截取的常用用法?

答案参考: 假设有变量var=http://www.oldboyedu.com/123.htm. 1. # 号截取,删除左边字符,保留右边字符. 变量: var=http://www.oldboyedu.com/123.htm echo ${var#*//} 其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符 即删除 http:// 结果是 :www.oldboyedu.com/123.htm 2. ## 号截取,删除左边字符,保留右边字符. 变量