【博学谷学习记录】超强总结,用心分享 | 狂野大数据shell脚本个人学习&复习记录—PART-02

shell脚本个人学习&复习记录PART-01:CSDN


7、shell的流程控制语句

if语句

数字判断

-eq:等于
-ne:不等于
-gt:大于
-lt:小于
-ge:大于等于
-le:小于等于

字符串判断

 

文件判断

#if格式
#判断系统中是否有多个ssh进程,如果有则打印true
#!/bin/bash
if [ $(ps -ef | grep -c "ssh") -gt 1 ]   #中括号前后必须加空格
then
    echo "true"
fi


#判断某个路径下的文件是否存在,不存在就创建
#!/bin/bash
DIR="/media/cdrom"
if [ ! -e $DIR ]     #中括号前后必须加空格
then
    mkdir -p $DIR
fi


#if else格式
#根据输入年龄判断是否成年
#!/bin/bash
read -p "Enter your age(1-100):" age   #这里的-p表示read的提示符,后面的字符串是直接echo,且在一行上,如果用echo则会换行
if [ $age -ge 18 ]   #等价于if test $age -ge 18
then
    echo "已成年"
else
    echo "未成年"
fi


#if elseif格式elif
#判断两个数值变量的大小
#!/bin/bash
read -p "请输入a变量:" a
read -p "请输入b变量:" b
if test $a -eq $b
then
    echo "a等于b"
elif test $a -gt $b
then
    echo "a大于b"
elif test $a -lt $b
then
    echo "a小于b"
else
    echo "条件不符合"
fi


#多条件判断
#!/bin/bash
read -p "请输入你的分数:" score
if test $score -ge 85 && test $score -le 100;then
echo "优"
elif test $score -ge 70 && test $score -le 84;then
echo "良"
elif test $score -ge 60 && test $score -le 69;then
echo "合格"
else
    echo "不合格"
fi

for语句

#输出1-5
#!/bin/bash
for i in 1 2 3 4 5
do
    echo "---$i---"
done


#模仿ls命令,脚本第一个参数路径若存在则输出该路径下的文件名,否则输出当前路径下的文件名
#!/bin/bash
dir=""  #定义一个变量接收路径
if test -z $1 ; then   #-z string,表示变量string为零则返回true,拓展-n相反
    dir=$PWD
else
    dir=$1
fi
for file in $(ls $dir)  #ls dir的文件名,根据脚本传入的第一个参数路径,若无,则ls当前路径
do
    echo "------$file"
done


#for循环输出1-5
#!/bin/bash
for ((i=1;i<=5:i++))
do
    echo $i
done


#for循环累加1-100的和
#!/bin/bash
sum=0
for ((i=1;i<=100;i++))
do
    #sum=$((sum=sum+i))    
    #sum=$[sum=sum+i]
    let sum+=i     #推荐用这种,加let关键字可以按照高级语言识别某些命令
done



#for死循环
#!/bin/bash
for ((;;))
do
        echo "hello"
        sleep 1
done

while语句

#while循环输出1-5
#!/bin/bash
i=1
while test $i -le 5
do
        echo $i
        let i++
done


#while循环输出1-100的和
#!/bin/bash
i=1
sum=0
while test $i -le 100
do
        let sum+=i
        let i++
done
echo $sum




#while死循环
while :    #这里冒号可以用true代替,效果一样
do
    echo "hello"
    sleep 1
done

case语句

#!/bin/bash
read -p "choose(1-3):" num
case $num in
1)
        echo "choose1"
        ;;
2)
        echo "choose2"
        ;;
3)
        echo "choose3"
        ;;
*)
        echo "choose other"
        ;;
esac


#case穿透
#!/bin/bash
read -p "choose(1-3):" num
case $num in
1|2|3)
        echo "choose1or2or3"
        ;;
*)
        echo "choose other"
        ;;
esac

break和continue与java一样,break跳过本层循环,continue跳过本次循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值