原帖由 "寂寞烈火" 发表:
我用的是pdksh,跟bash是基本兼容的,csh/tcsh的不好说
bsh/bash这样些函数
functionname () {
...
}
原帖由 "guangzongy" 发表:
在bash shell中递归函数中的变量的问题!
是不是在整个递归调用的过程中,使用同一名称的变量就是同一个变量。换句话说就是在下一层的调用中修改了变量var,当返回上层时,上层的var的值也被修改了。
原帖由 "guangzongy"]我试了一下,结果是下层的修改对上层会影响。这个问题的处理比较头痛呀![/quote 发表:
为防止下层的修改对上层的影响, 对 function 中的 variable 要限制为 local 的。
bash:
fun () {
local abc
..
}
ksh:
fun () {
typeset abc
..
}
[quote]原帖由 "寂寞烈火"]由于用递归函数,好像对于脚本效能不是很好的,有本书说尽量避免过多的使用递归(忘了哪本书了)[/quote 发表:
Page 310 in << Advanced Bash−Scripting Guide >> :
[quote]Local variables permit recursion, but this practice generally involves much computational overhead and
is definitely not recommended in a shell script.
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |