Shell Scripts函数,变量,数组

函数

函数(function),在很多情况下,我们需要多次处理重复的业务,或者复杂的业务时,可以将其单独封装成一个函数,这样既可以提高代码阅读性,也可以进行解耦,以及减少重复代码。
需要注意的是,shell脚本是由上到下,从左到右一次执行的,所以,函数一定要声明在调用之前
函数中可以使用return来显式地退出,后面可以接0-255范围内的整数,默认为0,代表正常退出,其余均为不正常退出。

函数的声明

[function] fnc_name(){
   
	fnc_body
	# do whatever you want here
}

函数的调用

# 直接写出函数名即可,不加括号,并且参数不是写在括号中,而是接在空格后,多个参数用空格分割
fnc_name param1 param2 param3 ... paramN

函数的内置变量

同shell script一样,函数也有很多内置变量,并且和shell script用法基本相同

变量 含义
$# 所传递的参数的总个数
$* 以字符串的形式,显示所传递的所有参数
$$ 显示当前进程的PID
$@ 如为加引号,则使用时与$*相同,但是使用时如果加了引号,则每个变量都会以引号的方式返回。
$? 上一条命令的执行状态码,0为正常,其他为错误

这里写一个简单的例子,顺便演示一下$*与$@的区别

vim fnc_test.sh

#!/bin/bash
# Program:
#	Program shows how to define and call a function with parameters 
#   	and tell us the different between $* and $@
# History:
# yyyy/mm/dd	Shuu	First release
function fnc_a(){
   
	echo "======>      the variable '\$\*' without \"\" is like:"
    for var in $*;
    do
    	echo $var
    done
    echo "======>      the variable '\$\@' without \"\" is like:"
    for var in $@;
    do
    	echo $var
    done
}
# call the fnc_a and pass the parameters
fnc_a one two three four five six
function fnc_b(){
   
	echo "======>      
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值