Shell 脚本学习笔记九:Shell函数

函数的定义格式:

function funName()

{

action;

return xxx;

}

1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数

2、参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n

/// 1、没有 return 语句的函数

demoFun()
{
    echo "这是一个Shell函数";
}

echo "----- 函数开始执行 -----"

demoFun

echo "----- 函数执行完毕 -----"

/// 2、带有 return 语句的函数

funcWithResult()
{
    echo "这个函数会对输入的两个数字进行相加运算";
    echo "输入第一个数字:";
    read aNum;
    echo "输入第二个数字:";
    read anotherNum;
    return `expr $aNum + $anotherNum`;
}

funcWithResult

echo "输入的两个数字之和为:$?"

注:

1、函数返回值在调用该函数后通过 $? 来获得;

2、所有函数在使用前必须定义,调用函数仅使用其函数名即可;

/// 3、函数参数

demoFun()
{
    echo "第一个参数 $1 "

    echo "第二个参数 $2 "

    echo "第十个参数 $10 "

    echo "第十个参数 ${10}"

    echo "参数总数有 $# 个"

    echo "作为一个字符串输出所有参数 $* "
}

demoFun 1 2 3 4 5 6 7 8 9 34 100

注:$10 不能获取第十个参数,获取第十个参数需要${10}。当n>=10时,需要使用${n}来获取参数

特殊参数:

$#  传递到脚本的参数个数

$* 以一个单字符串显示所有向脚本传递的参数

$$ 脚本运行的当前进程ID号

$! 后台运行的最后一个进程的ID号

[email protected] 与$*相同,但是使用时加引号,并在引号中返回每个参数。

$- 显示Shell使用的当前选项,与set命令功能相同。

$? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

时间: 2025-01-02 01:28:25

Shell 脚本学习笔记九:Shell函数的相关文章

shell脚本学习笔记系列--1

一.学好shell编程的知识储备 1.相关Linux系统命令应用: 2.Vi/vim 编辑器的熟练使用,相关客户端软件的设置: 3.基础的服务,系统服务ntp,crond,网络服务:nfs,rsync,inotify,sersync,ssh,lanmp等. 补充:清空日志的三种方法: 1)echo  " " > filename.log 2)>filename.log 3)cat  /dev/null > filename.log 注:工作中有的时候不能删除(日志)文

shell 脚本学习笔记--函数

一.定义格式 [function] 函数名() { 命令表 } 二.调用方法 先定义,后使用,直接输入函数名,不需要圆括号() 三.函数参数传递方法 可以利用位置参数或者变量进行传递 #! /bin/bash# myfirst.sh testFunction() { echo "$1,$2" #位置参数传递参数 echo "$val1,$val2" #变量传递参数 } val1="test1" val2="test2" tes

Shell脚本学习笔记-函数

1.  基本的脚本函数 1.1 函数的定义 function name { commands } 或者 name() { commands } 1.2 简单示例 #!/bin/sh function Func01 { echo "This is function of Func01" } Func02() { echo "This is function of Func02" } Func01 Func02 运行结果: 1.3 函数返回值与退出码 #!/bin/sh

shell脚本学习笔记:通过shell实现linux用户管理和监控

学习shell做的第一个脚本,感谢云知梦李强强老师的shell编程教程 创建shell脚本文件: touch menu.sh touch index.sh touch welcome.sh 赋予脚本文件可执行权限: chmod a+x menu.sh index.sh welcome.sh menu.sh #!/bin/bash #menu.sh function menu(){ title="My Home" name="Randy" time=`date +%Y

shell脚本学习笔记

1.判断符号:中括号[ ] [ ]进行数据的判断,例如我想知道HOME这个变量是否为空,[ -z "$HOME" ],或者两个字符串是否相等,[ "$HOME"  ==  "$MALI" ].由于中括号使用的地方有很多,所以在bash中作为判断式时,中括号的两端需要有空格来分隔.在使用中需要注意: 在中括号内的每个组件都需要有空格键来分隔 在中括号内的变量,最好以双引号括号起来,例如"$HOME" 在中括号内的常量,最好以单或

shell脚本学习笔记 (sed的高级用法----模式空间和保持空间)

前段时间在学习shell脚本,上次有提到sed的模式空间和保持空间概念,但是一直没有研究好,这两天研究了一下,所以将它发出来,不是很全面,仅仅供大家参考一下. 保持空间sed在正常情况下,将处理的行读入模式空间,脚本中的"sed command(sed命令)"就一条接着一条进行处理,直到脚本执行完毕.然后该行被输出,模式被清空:接着,在重复执行刚才的动作,文件中的新的一行被读入,直到文件处理完毕. 模式空间可以比喻为一个生产线,而保持空间则可以被比喻为仓库,这个比喻希望可以帮助大家理解

Shell 脚本学习笔记十:Shell输入输出重定向

command > file       将输出重定向到 file. command < file       将输入重定向到 file. command >> file     将输出以追加的方式重定向到 file. n > file              将文件描述符为 n 的文件重定向到 file. n >> file             将文件描述符为 n 的文件以追加的方式重定向到 file. n >& m             

shell脚本学习笔记之常见语法结构用法

一,变量 1.变量赋值和替换 语法:variable=value variable="value1 value2" echo  $variable/$"{variable}"   屏幕上显示赋值 echo  $"{variable+b}"  将已经赋值的变量重新设值,临时生效 echo  $"{variable:=value} 屏幕上显示value(前提是value没有被赋值) echo  $"{variable:-value

shell脚本学习笔记 (流编辑器sed)

sed意为流编辑器(Stream Editor),在Shell脚本和Makefile中作为过滤器使用很普遍,也就是把前一个程序的输出引入sed的输入,经过一系列编辑命令转换为另一种格式输出. sed不只支持正則表達式.它另一些比較厉害的功能. 我给出一个样例,大家看看有什么办法能够解决它吧. <html><head><title>Hello World</title> <body>Welcome to the world of regexp!&l