shell编程入门 第二章 函数式编程
shell编程入门
第一章 基本语法
第二章 函数式编程
文章目录
一、带参数的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