bash:使用变量调用函数与使用参数调用函数



让我们以下一个函数为例:

版本 1 - 带变量:

 backup () {
 for arname in `arname_f`
 do
   slapcat -b "$setnames" -l "$bkdir"/"$ardate"_"$arname".ldif || exit 1
 done
 }

并仅使用代码运行它:

 backup;

版本 2 - 带有位置参数:

 backup () {
 for arname in `arname_f`
 do
   slapcat -b "$1" -l "$2"/"$3"_"$4".ldif || exit 1
 done
 }

让我们使用这样的代码运行:

 backup $setnames $bkdir $ardate $arname;

这种倾斜有什么区别吗?

这个问题与

Bash本身无关。

#1 是大多数专业人士和理智的人讨厌的"意大利面"编码风格(全局变量)的例子。当某个地方有人更改参数并且函数开始行为不端时,它最终会导致一个重大问题,并且您将不知道谁/什么在哪里更改了什么。

#2 接近我的做法。虽然,出于原因,很可能有一个正当的理由来选择#1,这取决于。

相关内容

  • 没有找到相关文章

最新更新