【shell】shell中的选择、循环、判断

shell bash编程笔记合集: shell bash编程

if条件判断

1、if单分支判断

当条件成立时执行命令,否则不执行任何操作

if 条件测试
then 命令序列
fi

或者

if 条件测试;then
命令序列
fi

2、if双分支判断

当条件成立时执行命令1,否则执行命令2

if 条件测试
then 命令序列1
else
命令序列2
fi

或者

if 条件测试;then
命令序列 1
else
命令序列2
fi

3、if多分支判断

if 条件测试1;then
命令序列1
elif 条件判断2;then
命令序列2
……
else
命令序列n
fi

4、示例

#!/bin/bash

if [ $1 == "hi" ]
then echo -e "input hi" && exit
fi

if [ $1 -lt 10 ];then
	echo -e "less than 10"
elif [ $1 -eq 10 ];then
	echo -e "equal 10"
else
	echo -e "input $1"
fi

在这里插入图片描述

for循环

根据变量的不同取值,重复执行命令序列,

注意大量循环可以使用…代替,比如1到100可用{1…100}代替,a到z可以用{a…z}代替

for 变量 in 值列表
do
命令序列
done

或者

for ((初值;条件;步长))
do
命令序列
done

示例:

#!/bin/bash

for i in 1 2 3
do
    echo -e "#I am $i"
done

for ((i=1;i<=3;i++))
do
    echo -e "*I am $i"
done

在这里插入图片描述

while循环

反复测试条件,成立时执行命令序列

while 条件测试
do
命令序列
done

示例:

#!/bin/bash

counter=0

while [ $counter -lt 5 ]
do
    echo -e "counter=$counter"
    counter=$[counter + 1]
done

在这里插入图片描述

case语句

检查、判断变量的取值;效果类似于多分支的if语句,如果与预设的值相匹配,则执行对应的操作,命令序列最后必须以双分号结尾

格式:

case 变量 in
模式1)
命令序列1;;
模式2)
命令序列2;;
……
*)
默认命令序列
esac

示例:

#!/bin/bash

#case语句的使用
#用户输入两个单词,用case语句进行匹配

read -p "请输入单词ubuntu或者单词redhat:" word

case $word in
ubuntu)
    echo "ubuntu";;
redhat)
    echo "redhat";;
*)
    echo "没有匹配的单词!"
esac

在这里插入图片描述

shell中的数组

数组也是一个变量,是一个有点特殊的变量;存储多个数据的集合就是数组

定义数组:

变量名=(数据1 数据2 数据3 … 数据n)

访问数组中的第n个元素:

${变量名[n]}

示例:

#!/bin/bash

array=("hello")

array+=(" word!")

echo -e $array

echo -e "array:${array[0]}${array[1]}"

在这里插入图片描述

本节作业

编写脚本判断IP地址是否能够ping通

#!/bin/bash
string_1='                  '
string_2='---------------------------'
green='\e[32m'
red='\e[31m'
defult='\e[39m'
bold='\e[1m'
if [ -z "$1" ];then
    echo -e "\n$red usage:\n$string_1 [script] [ip address]"
    exit
fi
ping -c5 -i0.5 -W2 "$1" &>/dev/null
if [ $? -eq 0 ];then
    echo -e "\n$green $1 is up!\n"
else
    echo -e "\n$red $1 is down!\n"
fi

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值