Linux之Shell脚本的条件判断和函数

一、条件判断

1.if判断

(1)基本语法

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

注意事项:

1.[ 条件判断式 ]中括号和条件判断式之间必须有空格

2.if后要有空格

(2)实操

输入一个数字,如果是1,则输出java,如果是2,则输出python,如果是其它,则输出linux

#!/bin/bash
​
if [ $1 -eq 1 ]
then
        echo "java"
elif [ $1 -eq 2 ]
then
        echo "python"
else
        echo "linux"
fi

2.case语句

(1)基本语法

case $变量名 in
    "值1")
        程序1
    ;;
    "值2")
        程序2
    ;;
    *)
        程序3
    ;;
    esac

注意事项:

1.case行尾必须为单词"in",每一个模式匹配都必须以右括号")"结束

2.双分号";;"表示命令序列结束,相当于java的break

3.最后的" *) "表示默认模式,相当于java的default

(2)实操

输入一个数字,如果是1,则输出java,如果是2,则输出linux,如果是其它,则输出C++

#!/bin/bash
​
case $1 in
1)
        echo "java"
;;
2)
        echo "linux"
;;
*)
        echo "C++"
;;
esac

3.for循环

(1)基本语法1

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

(2)实操1

从1加到100

#!/bin/bash
​
s=0;
for((i=1;i<=100;i++))
do
        s=$[$s+$i]
done
​
echo $s

(3)基本语法2

for 变量 in 值1 值2 值3...
do
    程序
done   

(4)实操2

#!/bin/bash
​
for i in $*
do
        echo "parameter: ${i}"
done

4.while循环

(1)基本语法

while [ 条件判断式 ]
do
    程序
done 

(2)案例

输出一个数字,从1加到100

#!/bin/bash
​
s=0;
i=1;
while [ $i -le 100 ]
do
        s=$[$s+$i];
        i=$[$i+1];
done
​
echo $s

二、read读取控制台输入

1.基本语法

read(选项)(参数)
选项:
    -p:指定读取值时的提示符
    -t:指定读取值时等待的时间(秒)
参数:
    变量:指定读取值的变量名

2.实操

提示7秒内,读取控制台输入的名称

#!/bin/bash
​
read -t 7 -p "please input your name in 7  seconds: " NAME
​
echo $NAME

三、函数

1.系统函数

(1)basename基本语法

basename命令会删掉所有的前缀包括最后一个'/'字符,然后将字符串显示出来

basename [string/pathname] [suffix]

(2)实操

截取/home/depo/shell/read.sh路径的文件名称

[depo@dev shell]$ basename /home/depo/shell/read.sh 
read.sh

(3)dirname基本语法

从给定的包含绝对路径的文件名中去除文件名,然后返回剩下的路径

dirname 文件绝对路径

(4)实操

获取read.sh文件的路径

[depo@dev shell]$ dirname /home/depo/shell/read.sh 
/home/depo/shell

2.自定义函数

(1)基本语法

[ function ] funname[()]
{
    Action;
    [return int;]
}
​
funname

注意:

1.必须在调用函数地方之前,先声明函数,shell脚本是逐行运行。不会像其它语言一样一样先编译

2.函数返回值,只能通过$?系统变量获得,可以显示加return返回,如果不加,将以最后一条命令运行结果,作为返回值。return后跟数组(0-255)

(2)实操

计算两个输入参数的和

#!/bin/bash
​
function sum()
{
        s=0;
        s=$[$1+$2];
        echo $s
}
​
read -p "input your parameter1: " p1
read -p "input your parameter2: " p2
​
sum $p1 $p2

 

发布了197 篇原创文章 · 获赞 56 · 访问量 5万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 技术黑板 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览