变量类型 运行shell时,会同时存在三种变量:
- 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
- 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
- shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行 Shell 函数 shell中函数的定义格式如下:
[ function ] funname [()] { action; [return int;] } 1 2 3 4 5 说明:
1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。 2、参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255) 示例:
#!/bin/bash
funWithReturn(){ echo "这个函数会对输入的两个数字进行相加运算..." echo "输入第一个数字: " read aNum echo "输入第二个数字: " read anotherNum echo "两个数字分别为 anotherNum !" return aNum+anotherNum)) } funWithReturn echo "输入的两个数字之和为 ? !" 1 2 3 4 5 6 7 8 9 10 11 12 13 输出,类似下面:
这个函数会对输入的两个数字进行相加运算... 输入第一个数字: 1 输入第二个数字: 2 两个数字分别为 1 和 2 ! 输入的两个数字之和为 3 ! 1 2 3 4 5 6 7 函数返回值在调用该函数后通过 $? 来获得。
注意:所有函数在使用前必须定义。这意味着必须将函数放在脚本开始部分,直至shell解释器首次发现它时,才可以使用。调用函数仅使用其函数名即可。
在Shell中,调用函数时可以向其传递参数。在函数体内部,通过 1表示第一个参数,$2表示第二个参数…
带参数的函数示例:
#!/bin/bash
funWithParam(){ echo "第一个参数为 2 !" echo "第十个参数为 {10} !" echo "第十一个参数为 # 个!" echo "作为一个字符串输出所有参数 $* !" } funWithParam 1 2 3 4 5 6 7 8 9 34 73 1 2 3 4 5 6 7 8 9 10 11 12 输出结果:
第一个参数为 1 ! 第二个参数为 2 ! 第十个参数为 10 ! 第十个参数为 34 ! 第十一个参数为 73 ! 参数总数有 11 个! 作为一个字符串输出所有参数 1 2 3 4 5 6 7 8 9 34 73 ! 1 2 3 4 5 6 7 当n>=10时,需要使用${n}来获取参数。
另外,还有几个特殊字符用来处理参数:
参数处理 说明 # 传递到脚本的参数个数 * 以一个单字符串显示所有向脚本传递的参数