热门标签 | 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系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • centos安装Mysql的方法及步骤详解
    本文介绍了centos安装Mysql的两种方式:rpm方式和绿色方式安装,详细介绍了安装所需的软件包以及安装过程中的注意事项,包括检查是否安装成功的方法。通过本文,读者可以了解到在centos系统上如何正确安装Mysql。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文介绍了如何清除Eclipse中SVN用户的设置。首先需要查看使用的SVN接口,然后根据接口类型找到相应的目录并删除相关文件。最后使用SVN更新或提交来应用更改。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 本文介绍了使用readlink命令获取文件的完整路径的简单方法,并提供了一个示例命令来打印文件的完整路径。共有28种解决方案可供选择。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
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社区 版权所有