shell编程函数
函数介绍
函数就是具备某一个功能的工具
为什么要使用函数
如果不使用函数你的代码就会:
1.程序的组织不够清晰,可读性差
2.代码冗余
3.可扩展性 (功能要修改的时候...对不起GG)
如何使用函数
函数的使用必须遵循的原则:先定义,后调用
修理工事先准备好工具的过程就是定义函数
修理工遇到应用场景拿来工具就用即函数的调用
函数的语法
function 函数名 (){
命令1
命令2
命令3
}
function 函数名 {
命令1
命令2
命令3
}
函数名 (){
命令1
命令2
命令3
}
函数位置变量VS脚本位置变量
特殊变量 |
脚本 |
函数 |
$N |
脚本的第N个参数 |
函数的第N个参数 |
$0 |
脚本的名字 |
脚本的名字 |
$* $@ |
脚本的所有参数 |
函数的所有参数 |
$# |
脚本传递的参数个数 |
函数传递的参数个数 |
函数返回值
1.函数返回值必须是numeric,数字
2.返回值有个数的限制,只能写一个返回值
aaa (){
a=`free -m|awk 'NR==2{print $4/$2*100}'`
if [ $a -lt 30 ];then
echo '空闲内存剩余30%' | mail -s '内存不足' 2646491240@qq.com
fi
if [ $a -lt 30 ];then
return 1
else
return 0
fi
}
aaa
echo $?
作业
nginx (){
mkdir -p /nginx
ls /nginx/nginx-1.22.0 &> /dev/null
if [ $? -eq 0 ];then
echo 你已经下载nginx源码包
else
cd /nginx && wget http://nginx.org/download/nginx-1.22.0.tar.gz
tar xf nginx-1.22.0.tar.gz
yum -y install gcc gcc-c++ glibc pcre-devel openssl-devel
cd /nginx/nginx-1.22.0
./configure --prefix=/opt/nginx-1.22.0 --with-http_ssl_module --with-http_stub_status_module
make
make install
ln -s /opt/nginx-1.22.0/ /opt/nginx
echo 'export PATH="$PATH=:/opt/nginx/sbin"' > /etc/profile.d/nginx.sh
source /etc/profile
sh /etc/profile
fi
}
mysql (){
yum -y install mariadb-server
}
php (){
ls /etc/php.d/ &> /dev/null
if [ $? -eq 0 ];then
echo '你已经安装过PHP'
else
cd /php
yum -y localinstall *.rpm
fi
}
http (){
ls /etc/httpd/ &> /dev/null && echo '你已经安装过http' || yum -y install httpd
}
tomcat (){
ls /etc/tomcat/ &> /dev/null && echo '你已经安装过tomcat' || {
cd /tomcat && yum -y localinstall *.rpm
}
}
cat <<EOF
+---------+
| 1.lnmp |
+---------+
| 2.lnmt |
+---------+
| 3.lamp |
+---------+
| 4.lamt |
+---------+
| 5.nginx |
+---------+
| 6.apache|
+---------+
| 7.tomcat|
+---------+
| 8.php |
+---------+
EOF
read -p "请输入要下载的序号" aa
if [ $aa -eq 1 ];then
nginx
mysql
php
elif [ $aa -eq 2 ];then
nginx
mysql
tomcat
elif [ $aa -eq 3 ];then
http
mysql
php
elif [ $aa -eq 4 ];then
http
mysql
tomcat
elif [ $aa -eq 5 ];then
nginx
elif [ $aa -eq 6 ];then
http
elif [ $aa -eq 7 ];then
php
fi
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具