WindowsBatch与LinuxShell比较[batchfile之label与shell之函数]

WindowsBatch与LinuxShell比较[batchfile之label与shell之函数]

 

batch file的label与shell的函数比较

1 batch file
复制代码
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> @echo off

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
复制代码
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> # ! / 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
复制代码
注意:
定义时不用指定参数,调用时直接用$1,$2...来访问参数。
function 中可以使用local来屏蔽全局变量。

3完!

感谢,Thanks!

作者:iTech
出处:http://itech.cnblogs.com/

猜你喜欢

转载自akingde.iteye.com/blog/1770043