前端之家收集整理的这篇文章主要介绍了
shell 之函数,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
- shell 函数的定义
- @H_403_1@function_name(){
- statements
- }
-
- 下面实现一个例子
- @H_403_1@foo(){
- echo "Function foo is executing"
- }
- echo "script starting"
- foo
- echo "script ended"
- exit 0
-
- 你在调用一个函数之前必须先对他定义
- 利用local 去声明局部变量 全局变量和局部变量名字相同,局部变量覆盖全局变量
-
- 下面一个例子
- sample_text = "global variable"
- @H_403_1@foo(){
- local sample_text = "local variable"
- echo "function foo is executing"
- echo $sample_text
- }
- echo "start"
- echo $sample_text
- foo
- echo "end"
- echo $sample_text
- exit 0
- 函数中返回一个值
-
- @H_403_1@yes_or_no(){
- echo "is your name $* ?"
- while true
- do
- echo -n "enter yes or no"
- read x
- case "$x" in
- y|yes ) return 0;;
- n|no ) return 1;;
- *) echo "answer yes or no"
- esac
- done
- }
-
-
- echo "original parameters are $*"
- if yes_or_no "$1"
- then
- echo "hi $1,nice name"
- else
- echo "never mind"
- fi
- exit 0
-
- 为了看懂上面的程序先复习一下 命令行参数
-
- 特殊变量列表
- 变量 含义
- $0 当前脚本的文件名
- $n 传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。
- $# 传递给脚本或函数的参数个数。
- $* 传递给脚本或函数的所有参数。
- $@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到。
- $? 上个命令的退出状态,或函数的返回值。
- $$ 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID。