首页 > 系统相关 >Shell编程 - 函数篇

Shell编程 - 函数篇

时间:2024-12-01 20:43:21浏览次数:6  
标签:脚本 Shell 函数 show url 编程 参数 urls

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

标签:脚本,Shell,函数,show,url,编程,参数,urls
From: https://www.cnblogs.com/kyle-7Qc/p/18580317

相关文章

  • MATLAB中listdlg函数用法
    目录语法说明示例显示颜色列表用于进行多选显示当前文件夹文件用于进行单选        listdlg函数的功是创建列表选择对话框。语法[indx,tf]=listdlg('ListString',list)[indx,tf]=listdlg('ListString',list,Name,Value)说明[indx,tf]=listdlg('List......
  • MATLAB中questdlg函数用法
    目录语法说明示例在问题对话框中将用户的选择用整数编码使用TeX设置对话框中的问题的格式        questdlg函数的功能是创建问题对话框。语法answer=questdlg(quest)answer=questdlg(quest,dlgtitle)answer=questdlg(quest,dlgtitle,defbtn)answer......
  • [2024年3月10日]第15届蓝桥杯青少组stema选拔赛C++中高级(第二子卷、编程题(6))
    参考程序:#include<bits/stdc++.h>usingnamespacestd;intn;inta[305];intdp[305][305];//打掉ij之间所有靶子可以获得的最大积分(不含i,j)intmain(){cin>>n;for(inti=1;i<=n;i++){cin>>a[i];}a[0]=1;a[n+1]=1;for(inti=n......
  • Shell编程 - 循环篇
    1.for循环格式:for变量名in取值列表;do命令done示例:#!/bin/bashforiin{1..3};doecho$idone#bashtest.sh123for的语法也可以这么写:#!/bin/bashforiin"$@";{#$@是将位置参数作为单个来处理echo$i}#bashtest.sh123......
  • c++什么是函数重载? 函数重载的实现原理是什么?
    函数重载在同一个作用域内,函数名字相同,参数(个数,顺序,类型)不同,那么就是函数重载voidfun(){cout<<"没有参数";}voidfun(inta){cout<<"int";}voidfun(inta,floatb){cout<<"intfloat";}函数重载和返回值没关系intfun(){cout<<"wu&......
  • # 25_Python基础到实战一飞冲天(二)-python基础(二十五)--函数返回值和参数
    25_Python基础到实战一飞冲天(二)-python基础(二十五)–函数返回值和参数一、全局变量-06-全局变量定义的位置及代码结构1、python全局变量定义的位置为了保证所有的函数都能够正确使用到全局变量,应该将全局变量定义在其他函数的上方。2、python全局变量定义的位置示例代......
  • zblog 获取全部分类列表函数 GetCategoryList 的参数和使用方法介绍
    函数参数$select (数组):获取指定数据。$where (数组):数据获取限制规则。$order (数组):数据获取排序规则。$limit (数组):获取数据数量限制。$option (数组):附加限制选项,可用来获取指定范围内的数据。函数输出输出一个数组,包含分类列表数据。示例代码{foreach......
  • 第9天:基础入门-反弹Shell&渗透命令&Reverse反向&Bind正向&利用语言&文件下载&多姿势
    #知识点:1、反弹Shell-项目&命令&语言等2、系统渗透命令-网络&文件&操作等一、反弹Shell的前提条件:已知存在漏洞利用或执行命令的地方,怎么去已知,则需用到第8天的判断方式,进行判断是否存在命令执行的地方,在这个前提下,再去执行shell反弹;二、为什么要反弹Shell?往......
  • 常用算法函数
    C++提供了丰富的算法函数库,主要通过头文件<algorithm>和<numeric>来提供常用的算法函数1.排序算法sort对范围内的元素进行排序,时间复杂度为\((O(\frac{N}{logN}))\)。sort(vec.begin(),vec.end());sort(a.begin(),a.end());//less<int>() //12345sort(a......
  • C 语言学习心得:编程世界的初体验与成长
    学习C语言的过程就像是一场充满挑战与惊喜的冒险。从最初接触到它神秘而严谨的语法结构,到逐渐能够运用它构建出具有各种功能的程序,这期间我经历了困惑、沮丧,更收获了满满的成就感,深刻体会到了编程的魅力与艰辛。 C语言简洁而高效的特性犹如一把双刃剑。一方面,它给予了程......