1.软文推荐

2.软文推荐

3.软文推荐

Shell 函数的本质是一段可以重复使用的脚本代码,这段代码被提前编写好了,放在了指定的位置,使用时直接调取即可,本篇文章重点为大家详细讲解一下Shell函数使用方法。

1.Shell函数的定义格式

可以带function关键字使用function fun_name()来定义,也可以直接给出函数名fun_name()定义。不能带任何参数,函数名必须唯一,使时可以传递参数,使用2,…,@来获取参数。建议使用function关键字来定义函数,便于代码阅读。定义格式如下:

function_name()
{
list of commands
[ return value ]
}

#或

function function_name()
{
list of commands
[ return value ]
}

函数返回值,可以显式增加return语句;如果不加,会将最后一条命令运行结果作为返回值。

Shell 函数返回值只能是整数,一般用来表示函数执行成功与否,0表示成功,其他值表示失败。如果 return 其他数据,比如一个字符串,往往会得到错误提示:“numeric argument required”。

如果一定要让函数返回字符串,那么可以先定义一个变量,用来接收函数的计算结果,脚本在需要的时候访问这个变量来获得函数返回值。

#!/bin/bash

funcWorld()
{
echo "world"
}
res=`funcWorld`
echo "hello $res"

运行结果:

hello world
2.Shell函数的调用方式

要在脚本中调用函数, 只需给出函数名。比如要调用小节“1.Shell函数的定义格式”中的函数funcWorld(), 只需给出函数名funcWorld,函数名无需后跟小括号()。Shell函数的调用方式与Shell命令很相似。

3.Shell函数返回值的获取

使用获取。?既可以获取上一条命令的退出状态,也可以获取函数的返回值。这里更加可以看出,Shell函数的调用与Shell命令的执行极为相似。

#!/bin/bash

add()
{
varAddRes=`expr $1 + $2`
return $varAddRes
}
add 1 2 #调用函数,传递参数
echo $?

运行结果:3

4.Shell函数中定义局部变量

Shell函数中定义的变量默认是global的,其作用域从“函数被调用时执行变量定义的地方”开始,到Shell结束或被显示删除处为止。函数定义的变量可以使用local关键字显示定义成local的,其作用域局限于函数内,同名local变量会屏蔽global变量。但请注意,函数的参数是local的。

#!/bin/bash

function test()
{
local localVar=dablelv #局部变量
}
test
echo $localVar #输出为空
5.Shell函数使用时需要前置申明吗

Shell函数在使用前必须定义,没有申明的说法!一个通常的办法是把函数定义放在脚本开始部分。

6.Shell函数的删除

像删除变量一样,删除函数也可以使用unset命令,不过要加上-f选项,如下所示:

unset -f function_name
7.在命令行中使用函数

如果想在命令行中使用函数,需要在命令行执行函数的定义。直接在命令行定义Shell函数有个缺点,一旦退出Shell,函数定义将失效。可以将函数定义在Home目录下的.bash_profile文件,或者对所有用户均生效的/etc/profile文件,这样每次登录后,profile文件都会被调用,在命令提示符后面输入函数名字就可以立即调用。

注意:修改文件后要想马上生效需要执行source /etc/profile或者source ~/.bash_profile,不然只能在下次重新登录时才生效。

本文来源:www.lxlinux.net/6169.html,若引用不当,请联系修改。

相关文章 8

1

daceni怎么样(Dacen) 2分钟前

目录:1、100扇门的《名侦探柯南》片头曲2、跪求!!tim 请当心的拼音歌词3、的ama程做么视水关 频教频怎视y相100扇门的《名侦探柯南》片...

2

讲解一下React AJAX 3分钟前

React是一款颠覆式的前端解决方案,其创新的编程思想以及衍生出来的一些生态圈技术可以说是引领了整个前端的发展。 为什么要选择Reac...

3

Linux下使用grep查找文件内容 6分钟前

Linux下如何查找文件内容?本篇文章将使用grep为大家演示一下Linux下查找文件内容的方法,grep 是一种强大的文本搜索工具,它能使用正则表...

4

腾讯云轻量服务器升级配置(腾讯云轻量服务器免费升级) 9分钟前

目录:1、阿里云和腾讯云两家巨头还会升级配置吗?据现在来看腾讯云的配置已经胜于阿里云啦,运行内存也大大超过阿2、腾讯云轻量应用...

5

快速上手Linux OpenSSL命令 12分钟前

OpenSSL是一个强大的安全套接字层密码库,Apache使用它加密HTTPS,OpenSSH使用它加密SSH,但是,你不应该只将其作为一个库来使用,它还是一个...

6

Centos8上安装Git具体方法 14分钟前

Git 是最流行的版本管理工具,也是程序员的必备技能之一,本篇文章将为大家演示一下如何在Centos8上安装Git具体方法。 在CentOS 8上使用Yu...

7

云服务器哪个稳定(云服务器哪家稳定) 15分钟前

目录:1、哪个云服务器比较好?2、云服务器哪家比较好3、云服务器哪家好4、有哪些云服务器比较好哪个云服务器比较好? 比较好的云服务...

8

详解JSP文件上传 16分钟前

jsp即java server pages,顾名思义就是java服务器端页面,是一种动态的页面开发技术。并且jsp实现了html中插入java代码的技术,是放在服务器端的...