首页 > 系统相关 >shell函数

shell函数

时间:2023-09-21 16:12:46浏览次数:36  
标签:function shell 函数 echo hello name

shell函数

shell中允许将一组命令集合语句形成一段可用代码,这些代码块称为shell函数。给这段代码起个名字称为函数名,后续可以直接调用该段代码的功能。

1.函数的定义

函数名()
{
  函数体(一堆命令的集合,来实现某个功能)   
}

function 函数名()
{
   函数体(一堆命令的集合,来实现某个功能)  
}


function_name() {
		command
		command
}


function function_name() {
		command
		command
}

2.函数的调用

通过function关键字定义shell函数,也可以省略function关键字
shell的函数,先定义,后调用

举例
# 定义第一个函数,名字是 hello 
function hello(){
	# 被封装的代码,执行该函数,就会执行这里的函数体
    echo "hello  linux."
}

hello # 直接写函数名就可以调用函数,不需要带()

函数从文件中导入

vim func1.sh
#!/bin/bash
name='吴彦祖'

echo_name(){
	echo "该变量name的值是:$name"  # 只定义不调用
}
hello(){
  echo "原来脚本可以这样玩,我是func1中的hello函数,我被执行了"
}

hello


vim func2.sh

#!/bin/bash
. func1.sh  # 脚本2中导入func1.sh

echo_name   # 调用func1.sh中的echo_name函数

bash func2.sh
原来脚本可以这样玩,我是func1中的hello函数,我被执行了
该变量name的值是:吴彦祖

函数传参

1. 这里的函数传参,是指单独给函数传递执行参数,和给脚本传入参数是两码事
2. 函数传参是指,函数在执行的时候,可以传入位置参数,这样函数连带参数一起执行。

举例:
#!/bin/bash 

function hello(){
    echo "函数开始执行"
    echo "函数体中接收的参数1 :" $1
    echo "函数体中接收的参数2 :" $2   # 这里是执行函数传入的参数,即指下面的laoliu laoba
}

# 这里传入的是函数参数
hello laoliu laoba

echo "函数外,可以正常的接收位置参数1:" $1   
echo "函数外,可以正常的接收位置参数2:" $2  # 这里是执行脚本传入的参数 $1和$2

标签:function,shell,函数,echo,hello,name
From: https://www.cnblogs.com/chunjeh/p/17720191.html

相关文章

  • Oracle 分析函数的使用
    Oracle分析函数使用介绍  分析函数是oracle816引入的一个全新的概念,为我们分析数据提供了一种简单高效的处理方式.在分析函数出现以前,我们必须使用自联查询,子查询或者内联视图,甚至复杂的存储过程实现的语句,现在只要一条简单的sql语句就可以实现了,而且在执行效率方面也有......
  • How to print a string with a variable by using the echo command in the shell scr
    HowtoprintastringwithavariablebyusingtheechocommandintheshellscriptAllInOneNode.js&nvmquestionIdefinedashellvariableintheterminalandthenusedtheechocommandtooutputastringwiththatvariableanditworkedfine......
  • 无涯教程-JavaScript - COUNTIFS函数
    描述COUNTIFS函数将多个条件应用于跨多个范围的单元格,并计算满足所有条件的次数。语法COUNTIFS(criteria_range1,criteria1,[criteria_range2,criteria2]…)争论Argument描述Required/Optionalcriteria_range1Thefirstrangeinwhichtoevaluatetheassociat......
  • C语言之函数篇
    前言函数知识。一起开始学习吧!@TOC一、认识函数函数?那不是数学中的知识吗?比如:指数函数,对数函数,幂函数等等,不会有小伙伴们以为牛牛要讲这些吧,很遗憾的告诉你们,这些都不是我们今天要讲的内容。牛牛是不会跑题的,牛牛今天主要介绍的是c语言中的函数。我们知道一个大的问题往往是可以......
  • mysql 时间函数
    MySQL日期跟时间函数(一)作者:Mr.ZhangMySQL日期跟时间的样式在MySQL中有很多有用处的日期跟时间函数。我们常常看到许多应用于日期的计算是在代码方面上进行的,但是其实他们完全可以使用MySQL中自带的函数来实现。在我们实际的查看MySQL的时间跟日期函数之前,先让我们看看MySQL的......
  • 无涯教程-JavaScript - COUNTIF函数
    描述COUNTIF函数计算符合条件的单元格数。语法COUNTIF(range,criteria)争论Argument描述Required/Optionalrange您要计数的单元格组。范围可以包含数字,数组,命名范围或包含数字的引用。空白和文本值将被忽略。RequiredcriteriaAnumber,expression,cellr......
  • JavaScript函数大全 集合
    JavaScript函数大全集合javascript提供了许多函数供开发人员使用,下面给出一个简单介绍,更详细的信息请参考VisualInterDev提供的在线帮助。javascript函数一共可分为五类:·常规函数·数组函数·日期函数·数学函数·字符串函数1.常规函......
  • oracle 内置函数备忘录
    这两天在写oracle包,蛮大的一个,为了方便查找,就丢上来个。黄色是经常用到的,顺便看看对大家有没有帮助。  SQL中的单记录函数1.ASCII返回与指定的字符对应的十进制数;SQL>selectascii('A')A,ascii('a')a,ascii('0')zero,ascii('')spacefromdual;       A    ......
  • 【c&c++】C++中memset()函数的用法详解
    头文件:cstring 或 memory话说刚开始使用memset的时候一直以为memset是对每一个int赋值的,心里想有了memset还要for循环对数组进行初始化干嘛。但其实memset这个函数的作用是将数字以单个字节逐个拷贝的方式放到指定的内存中去memset(dp,0,sizeof(dp));int类型的变量一般占......
  • Win32编程之函数转发注入DLL(十五)
    一、创建目标DLL文件DLL名称:targetdll.dll头文件(targetdll.h):#pragmaonce__declspec(dllexport)void__stdcallhello();__declspec(dllexport)int__stdcalladd(inta,intb);源文件(targetdll.cpp)#include<stdio.h>#include"targetdll.h"void_......