> 文章列表 > shell编程入门 第二章 函数式编程

shell编程入门 第二章 函数式编程

shell编程入门 第二章 函数式编程

shell编程入门

第一章 基本语法
第二章 函数式编程


文章目录

  • shell编程入门
  • 一、带参数的shell函数
    • 1.1 打印出传递的参数
    • 1.2 判断成绩是否合格
    • 1.3 等级赋分
  • 二、无参数的shell函数
    • 1.遍历输出1-5
    • 2.遍历输出1-100
    • 3.遍历输出1-100里的所有奇数
    • 4.遍历根目录下所有内容
    • 5.计算1-100的累加和
    • 6.无限循环打印特定值
    • 7.选择1-4中的某一个值确认
    • 8.每过一百秒打印当前日期

一、带参数的shell函数

1.1 打印出传递的参数

#!/bin/bash
fun1(){
echo "我的第一个函数"
#获取并打印参数
echo "参数1:$1"
echo "参数2:$2"
echo "参数3:$3"
echo "获取所有参数"
echo "$*"
echo "$@"
}
#调用所有函数并传递参数
fun1 aa bb cc

1.2 判断成绩是否合格

#!/bin/bash
score=40
fun1(){
echo "成绩判断函数"
#获取并打印参数
if [ $score -gt 60 ] ; thenecho "及格"
elseecho "不及格"
fi
}
#调用所有函数并传递参数
fun1 score

1.3 等级赋分

#!/bin/bash
score=40
fun1(){
echo "成绩判断函数"
#获取并打印参数
if [ $score -ge 90 ] ; thenecho "A"
elif [ $score -ge 80 ] ; thenecho "B"
elif [ $score -ge 70 ] ; thenecho "C"
elif [ $score -ge 60 ] ; thenecho "D"
elseecho "E"
fi
}
#调用所有函数并传递参数
fun1 score

二、无参数的shell函数

1.遍历输出1-5

代码如下(示例):

#!/bin/bash
fun1(){
echo "遍历函数"
#获取并打印参数
for i in 1 2 3 4 5 ; do
echo $i;
done
echo "-------------------- "
}
#调用所有函数
fun1

2.遍历输出1-100

代码如下:

#!/bin/bash
fun1(){
echo "遍历函数"
#获取并打印参数
for i in {1..100}; do
echo $i;
done
echo "-------------------- "
}
#调用所有函数
fun1

3.遍历输出1-100里的所有奇数

代码如下:

#!/bin/bash
fun1(){
echo "遍历函数"
#获取并打印参数
for i in {1..100..2}; do
echo $i;
done
echo "-------------------- "
}
#调用所有函数
fun1

4.遍历根目录下所有内容

注意这个飘号,而不是单引号

#!/bin/bash
fun1(){
echo "遍历函数"
#获取并打印参数
for f in `ls /`; do
echo $f 
done
echo "-------------------- "
}
#调用所有函数
fun1

5.计算1-100的累加和

#!/bin/bash
fun1(){
echo "计算1-100的累加和"
sum=0
i=1
#获取并打印参数
while [ $i -le 100 ]; dosum=$[ sum + i]i=$[ i + 1 ]
done
echo $sum
echo "-------------------- "
}
#调用函数
fun1

6.无限循环打印特定值

#!/bin/bash
fun1(){
echo "使用for每过一秒打印hello"
for((;;))
do echo "hello"sleep 1
done
echo "-------------------- "
}
#调用函数
fun1

7.选择1-4中的某一个值确认

#!/bin/bash
fun1(){
echo "请你输入1-4的关键字"
read anum
echo $anum
case $anum in1) echo "你选择了1";;2) echo "你选择了2";;3) echo "你选择了3";;4) echo "你选择了4";;*) echo "你没有选择1-4号的数字";;
esacecho "-------------------- "
}
#调用函数
fun1

8.每过一百秒打印当前日期

#!/bin/bash
fun1(){
echo "使用for没过一秒打印当前日期"
while true ;
do echo `date +"%Y-%m-%d %H:%m:%s"`sleep 1
done
echo "-------------------- "
}
#调用函数
fun1

打印十下跳出循环

#!/bin/bash
fun1(){
echo "使用for每过一秒打印当前日期,执行十次停止"
i=0
while true;
do sleep 1echo $i `date +"%Y-%m-%d %H:%m:%s"`i=$[ i + 1 ]if [ $i -eq 10 ] ; thenbreakfi
done
echo "-------------------- "
}
#调用函数
fun1

打印1-30的数,跳过3的倍数

#!/bin/bash
fun1(){
echo "打印1-30 跳过3的倍数"
for i in {1..30}; doresult=$[ i % 3 ]if [ $result -eq 0 ]; thencontinuefiecho $i
done 
echo "-------------------- "
}
#调用函数
fun1