shell变量和函数定义

shell中函数定义有两种形式:
methodName(){
} 或
function methodName{
}
调用方式都是$(methodName)
具体demo代码:

#!/bin/bash
function method1 {
echo "say method1"
}

method2(){
echo "say method2"
}

cat << _EOF_
$(method1)
$(method2)
_EOF_

shell变量分为局部变量和全局变量。全局变量不需要声明类型,直接使用变量,局部变量需要用local修饰。
具体如下:

#!/bin/bash
#global variables 
name="jerry"

methodLocalTest(){
local name="tom" #local variables
echo "my name is ${name}"
}

cat << _EOF_
GLOBAL VARIABLES IS : $name
LOCAL VARIABLES IS : $(methodLocalTest)
_EOF_

总结:
1,因为shell中没有像java语言一样可以一次注释大段代码,所以可以用方法的形式,将本来需要注释掉的代码用方法块括起来。
2,方法结束不一定要加return。但我看书上一般都加了,我把return删除,代码正常运行。如果是在方法最后一行用return,难免感觉有点画蛇添足。
3,局部变量可以与已存在的变量名相同,这些变量可以是全局变量或者是其它shell函数中的局部变量,不用担心冲突。函数执行完,函数中局部变量消失。

你可能感兴趣的:(shell,函数)