热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux基础之shell函数(长期更新函数)

function函数名(){函数体;}**跨脚本调用函数**source写了函数的脚本然后就可以在当前环境调用了local变量名意义同局部变量return

function

函数名 ()
{函数体;}**跨脚本调用函数**
source 写了函数的脚本
然后就可以在当前环境调用了
local 变量名 意义同局部变量
return 结束函数返回结果
$?可查看函数返回状态
function(){echo $[$1+$2]
}
function 10 20 #传参

调用函数直接,写函数名
小技巧 系统路径/etc/init.d/funcation 文件里带有大量系统函数
action 函数可实现以下功能
在这里插入图片描述


递归调用

不停调用自己 linux中会不停开启子shell 递归函数一定要有结束条件
#轻松破坏linux
func () {let i++echo $ifunc
}

函数库(写一些功能)

#!/bin/bash
#
#********************************************************************
#Author: YiMingLANG
#QQ: 1428040096
#Date: 2021-10-4
#FileName: founcations
#Copyright (C): 2021 All rights reserved
#********************************************************************
COLOR="echo -e \E[1;32m"
END="\E[0m"
NUMBER="10" disable_firewalld(){${COLOR}********** stop the firewalld and close the firewalld *********${END}FIREWALLD_STATUS=`systemctl status firewalld`if echo ${FIREWALLD_STATUS} |grep -o "active (running)"; thensystemctl stop firewalld && systemctl disable firewalld &>/dev/null${COLOR}********** firewalld status *********${END}FIREWALLD_STATUS="firewalld is dead"echo ${FIREWALLD_STATUS}else${COLOR}********** firewalld status *********${END}FIREWALLD_STATUS="firewalld is dead"echo ${FIREWALLD_STATUS}fi${COLOR}********** firewalld over *********${END}
}disable_selinux(){sed -ir 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/configsetenforce 0echo "目前selinux的状态为`getenforce`"
}network_interface(){sed -r -i.bak '/^GRUB_CMDLINE_LINUX=/s@"$@ ifnames=0"@' /etc/default/grub#此处替换配置文件(错误删除,需要补充)SYSINFO=`cat /proc/version`if echo ${SYSINFO} | grep -oE 'centos' &> /dev/null ;then#centosgrub2-mkconfig -o /boot/grub2/grub.cfgecho "centos 重启后生效"elif echo ${SYSINFO} | grep -oE 'ubuntu' &> /dev/null;then#ubuntugrub-mkconfig -o /boot/grub/grub.cfgecho "ubuntu 重启后生效"
}infor_system(){RED="\E[1;31m"GREEN="echo -e \E[1;32m"END="\E[0m"$GREEN----------------------Host systeminfo--------------------$ENDecho -e "HOSTNAME: $RED`hostname`$END"#echo -e "IPADDR: $RED` ifconfig eth0|grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}' |head -n1`$END"echo -e "IPADDR: $RED` hostname -I`$END"echo -e "OSVERSION: $RED`cat /etc/redhat-release`$END"echo -e "KERNEL: $RED`uname -r`$END"echo -e "CPU: $RED`lscpu|grep 'Model name'|tr -s ' '|cut -d : -f2`$END"echo -e "MEMORY: $RED`free -h|grep Mem|tr -s ' ' : |cut -d : -f2`$END"echo -e "DISK: $RED`lsblk |grep '^sd' |tr -s ' ' |cut -d " " -f4`$END"$GREEN---------------------------------------------------------$END
}

回到主目录

首页
在这里插入图片描述


推荐阅读
  • 本文将详细探讨Linux pinctrl子系统的各个关键数据结构,帮助读者深入了解其内部机制。通过分析这些数据结构及其相互关系,我们将进一步理解pinctrl子系统的工作原理和设计思路。 ... [详细]
  • This pull request introduces the ability to provide comprehensive paragraph configurations directly within the Create Note and Create Paragraph REST endpoints, reducing the need for additional configuration calls. ... [详细]
  • 本文介绍如何使用 Android 的 Canvas 和 View 组件创建一个简单的绘图板应用程序,支持触摸绘画和保存图片功能。 ... [详细]
  • 本文介绍了如何在多线程环境中实现异步任务的事务控制,确保任务执行的一致性和可靠性。通过使用计数器和异常标记字段,系统能够准确判断所有异步线程的执行结果,并根据结果决定是否回滚或提交事务。 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 在高并发需求的C++项目中,我们最初选择了JsonCpp进行JSON解析和序列化。然而,在处理大数据量时,JsonCpp频繁抛出异常,尤其是在多线程环境下问题更为突出。通过分析发现,旧版本的JsonCpp存在多线程安全性和性能瓶颈。经过评估,我们最终选择了RapidJSON作为替代方案,并实现了显著的性能提升。 ... [详细]
  • 本文探讨了如何通过一系列技术手段提升Spring Boot项目的并发处理能力,解决生产环境中因慢请求导致的系统性能下降问题。 ... [详细]
  • Logback使用小结
    1一定要使用slf4j的jar包,不要使用apachecommons的jar。否则滚动生成文件不生效,不滚动的时候却生效~~importorg.slf ... [详细]
  • 在现代Web应用中,当用户滚动到页面底部时,自动加载更多内容的功能变得越来越普遍。这种无刷新加载技术不仅提升了用户体验,还优化了页面性能。本文将探讨如何实现这一功能,并介绍一些实际应用案例。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 本文探讨了仅对图像文件的内容进行加密的方法,而不加密整个文件。通过这种方式,可以保护图像中的敏感信息,同时保持文件的其他部分不受影响。 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
  • 本文介绍了一种根据目标检测结果,从原始XML文件中提取并分析特定类别的方法。通过解析XML文件,筛选出特定类别的图像和标注信息,并保存到新的文件夹中,以便进一步分析和处理。 ... [详细]
  • 本文介绍了如何使用Java代码在Android设备上检测特定应用程序是否已安装。通过创建一个Intent并利用PackageManager查询该Intent的可用性来实现这一功能。 ... [详细]
  • 本文介绍了在MacOS上通过Homebrew安装Anaconda3,并配置环境变量以实现不同Python版本之间的快速切换。同时,提供了详细的步骤来创建和管理多个Python环境。 ... [详细]
author-avatar
多伦多打折优惠信息_205
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有