Shell编程 - 函数篇

1. 概述

把一堆代码,起个名字 。
对脚本中重复使用到的代码,设置函数,精简脚本的内容。
让脚本更加的规范。
  • 应用场景:
    • 在书写脚本的时候,尽量使用函数,规范脚本。
    • 让脚本的开发,更加模块化。
    • 方便后期调试,调试的时候只需要注释函数即可。

2. 格式

#定义方式01  最完整
function  show() {
 命令
 命令
 内容
 return  n  #函数的返回值 
}

#定义方式02   精简写法 一般使用这一种.
show() {
 命令
 命令
 内容
  return  n  #函数的返回值 
}

#定义方式03  最完整
function  show {
 命令
 命令
 内容
 return  n  #函数的返回值 
}

案例1. 检查ip或url是否可以访问 -函数化

#!/bin/bash

#1.vars
 read -p "请输入待检查的ip或域名:" urls
 #2.检查urls变量
function chk_url_empty() {
if [ -z "$urls" ] ;then
   echo "请重新输入: $0 ip或域名"
   exit 1
 fi
}
 #3.for 循环
function chk_ping() {
for  url in  $urls
 do
    #4.ping检查
    ping -c1 ${url}   &>/dev/null
    #5.检查返回值
    if [ $? -eq 0 ];then
       echo "${url} 可以访问的"
    else
       echo "${url} 不可以访问的"
    fi

done
}
main() {
chk_url_empty
chk_ping
}
main

3. 函数传参

  • 函数传参与脚本传参类似。使用$xxxxx形式进行。
位置参数 shell脚本中 函数中
$n 脚本的第n个参数 函数的第n个参数
$0 脚本的名字 脚本的名字
$# 脚本的参数个数 函数的参数个数
$@ 、$* 脚本的所有参数 函数的所有参数

案例2. 函数传参案例

[root@web01 /service/scripts]# cat fun_params.sh
#!/bin/bash

show() {
 cat <<EOF
    show函数的参数个数:$#
    show函数的所有参数:$*
    $1.com
    $1.cn
    $1.org
    $1.企业
    $1.icu
    $1.hello
EOF
 }
 show $1      #这是脚本的第1个参数
 show $*      #这是脚本的所有参数

[root@web01 /service/scripts]# bash fun_params.sh kyle    ni   hh
    show函数的参数个数:3
    show函数的所有参数:kyle ni hh
    kyle.com
    kyle.cn
    kyle.org
    kyle.企业
    kyle.icu
    kyle.hello
posted @   kyle_7Qc  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示