Shell笔记:函数基础使用

世上唯一不能复制的是时间,唯一不能重演的是人生,唯一不劳而获的是年龄。该怎么走,过什么样的生活,全凭自己的选择和努力。人生很贵,请别浪费!与智者为伍,与良善者同行。Shell笔记:函数基础使用,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

语法如下:

[function] func_name() {
  ...
  [return int]
}

function关键字: 定义一个函数,function关键字是可选的。
语句结束符: 函数中每个语句以换行符作为结束,不用使用分号,一行一句即可,分号通常只是用于连接两个语句。
return关键字: 也是可选的,不指定时自动使用最后一个语句的运行结果作为返回值。
函数返回值: 其实无论是否使用return指定函数返回值,本质上,函数的返回值都是此函数最后一条语句的运行结果。shell中一条语句的运行结果为整数,0表示执行成功,其他数字表示失败。获取函数返回值使用 $?$? 的本质是代表它上一条语句的执行结果,所以函数执行之后想要拿到其返回值, $? 和函数执行语句之间就不能有其他语句的执行。
函数传参: 格式为 func_name var1 var2 var3 ... ,在函数中获取参数时使用 $1${1} 的形式获取对应第一个参数,需要注意的是,获取第十个及以上参数时,就只能使用大括号的格式获取了, $10 是无法获取第十个参数的。

#!/bin/sh
function hello() {
    echo "Hello Shell"
    # 函数参数以$1或${1}、$2或${2}等方式获取对应的第一个、第二个等参数,
    # 如果参数个数大于9,那么从第十个开始,就必须使用${10}的格式了,不能使用$10的格式了
    echo 1
    echo ${2}
    return 0
}

# 函数执行直接将函数名当做命令执行即可,函数参数以空格分隔分别传入
hello var1 var2
# 函数执行结果需要在函数执行之后下一行立马获取,不能有其他语句在这中间去执行,
# 否则$?拿到的就是它上一条语句的执行结果,而不是函数的执行结果了
result=$?
echo ${result}
Hello Shell
var1
var2
0

local变量: local变量就是函数内的局部变量,只能用在函数中,如果在函数之外使用local定义变量,会报错并提示 local: can only be used in a function 。当然,函数内定义的local变量,在函数外就无法使用了,使用时不会报错,只是会拿到一个空的值。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/235363.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!