shell脚本入门2


前言

本文为笔者学习笔记,若有不妥之处,欢迎斧正。


一、shell脚本条件判断

shell脚本支持条件判断,虽然可以通过&&和||来实现简单的条件判断,但是稍微复杂一点的场景就不适合了。

1、if判断

语法原型及用法有以下三种:

第一种:

if  条件判断 ; then
 //判断成立要做的事情
fi

代码演示:

#!/bin/bash

num1=10
num2=20

if (($num1 != $num2));then
        echo "num1 != num2"
fi

运行结果如下:

num1 != num2

第二种:

if  条件判断 ; then
 //条件判断成立要做的事情
else
 //条件判断不成立要做的事情。
fi

代码演示:

#!/bin/bash

num1=10
num2=10

if (($num1 != $num2));then
        echo "num1 != num2"
else
        echo "num1 == num2"
fi

运行结果如下:

num1 == num2

第三种:

if  条件判断 ; then
 //条件判断成立要做的事情
elif [条件判断]; then
//条件判断成立要做的事情
else
 //条件判断不成立要做的事情。
fi

代码演示:

#!/bin/bash

num1=11
num2=12

if (($num1 > $num2));then
        echo "num1 > num2"
elif (($num1 == $num2));then
        echo "num1 == num2"
else
        echo "num1 < num2"
fi

运行结果如下:

num1 < num2

2、case语句

语法原型:

case $变量 in
“第1个变量内容”)
	程序段
	;;	//表示该程序块结束!!
“第2个变量内容”)
	程序段;;
“第n个变量内容”)
	程序段
	;;
esac
#!/bin/bash

case $1 in
"1")
	echo "hello world"
	;;
"2")
	echo "C YYDS"
	;;
esac

运行结果如下:

//输入./demo12.sh 1
hello world
//输入./demo12.sh 2
C YYDS

二、shell脚本函数

linux shell 可以用户定义函数,然后在shell脚本中可以随便调用。

函数语法如下:

function fname () 
{
    
    
	//函数代码段
}

说明:

1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。
2、参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255)

注意:函数调用时,只需要函数名即可

代码演示:

#!/bin/bash

num1=10
num2=15

function swap()
{
    
    
        temp=$num1;
        num1=$num2;
        num2=$temp
}

echo "before swap:" $num1 $num2

swap

echo "after swap:" $num1 $num2

运行结果如下:

before swap: 10 15
after swap: 15 10

三、shell循环

shell脚本也支持循环,比如for、while和until。

1、while循环

表示当条件成立的时候就一直循环,直到条件不成立。

语法原型:

while 条件测试
do
	执行命令
done

代码演示

#!/bin/bash

while [ "$value" != "close" ]
do
        read -p "please input str:" value
done

echo "stop while"

运行结果如下:

please input str:1
please input str:2
please input str:sad
please input str:afaw
please input str:sfa
please input str:agf
please input str:asgg
please input str:
please input str:
please input str:agaw
please input str:
please input str:close
stop while

2、unitl循环

表示条件不成立的时候循环,条件成立以后就不循环了。

语法原型:

until 条件测试
do
	执行命令
done

代码演示:

#!/bin/bash

until [ "$value" == "close" ]
do
        read -p "please input str:" value
done

echo "stop until"

运行结果如下:

please input str:sad
please input str:fa
please input str:fef
please input str:sf
please input str:
please input str:ea
please input str:f
please input str:close
stop until

3、for循环

for循环,使用for循环可以知道有循环次数(次数可自行控制)。

第一种语法原型:

for 变量 in 串行
do
   执行命令
done

代码演示:

#!/bin/bash

total=0

for num in 1 2 3 4 5 6 7 8 9 10
do
        total=$(($total+$num))
        echo "num is:" $num
done

echo "total is $total"

运行结果如下:

num is: 1
num is: 2
num is: 3
num is: 4
num is: 5
num is: 6
num is: 7
num is: 8
num is: 9
num is: 10
total is 55

第二种语法原型:

函数原型:

for((初始值; 限制值; 执行步长))
do
//循环代码段
done

代码演示:

#!/bin/bash

total=0

for (( i=1 ; i<=100 ; i=i+1))  #i=i+1可以换成i++
do
        total=$(($total+$i))
done

echo "total is $total"

运行结果如下:

total is 5050

猜你喜欢

转载自blog.csdn.net/weixin_51363326/article/details/116700792