batch file的label与shell的函数比较
1 batch file
@echo
off
echo 调用前
echo 调用子过程
call :sub
echo 调用后
Goto end
:sub
echo 子过程调用中
goto :eof
:end
echo 退出
Pause
exit
注意:
echo 调用前
echo 调用子过程
call :sub
echo 调用后
Goto end
:sub
echo 子过程调用中
goto :eof
:end
echo 退出
Pause
exit
label用:来定义,相当于程序块,也可以认为是函数,使用goto跳转到label。
如果使用call来调用label且label前仍有:,此时此label实际上被转化为子batch file。此时lable中的goto :eof仅表示推出子batch file,不是退出整个batch file。
2 shell file
#
!
/
bin
/
bash
function quit {
exit
}
function e {
echo $ 1
}
e Hello
e World
quit
echo foo
function afunc
{
echo " alice: $* "
echo " $0: $1 $2 $3 $4 "
echo " $# arguments "
local var1
var1 = " in function "
echo var1: $ var1
return $ ?
}
var1 = globalvar
afunc a b c d e f
echo $ var1
注意:
function quit {
exit
}
function e {
echo $ 1
}
e Hello
e World
quit
echo foo
function afunc
{
echo " alice: $* "
echo " $0: $1 $2 $3 $4 "
echo " $# arguments "
local var1
var1 = " in function "
echo var1: $ var1
return $ ?
}
var1 = globalvar
afunc a b c d e f
echo $ var1
定义时不用指定参数,调用时直接用$1,$2...来访问参数。
function 中可以使用local来屏蔽全局变量。
3完!