我发现有些人在编写Bash脚本时,会像示例1一样在if else语句中定义局部变量。
#!/bin/bash
function ok() {
local animal
if [ ${A} ]; then
animal="zebra"
fi
echo "$animal"
}
A=true
ok
举个例子,这个也是一样的:
例子2:
#!/bin/bash
function ok() {
if [ ${A} ]; then
local animal
animal="zebra"
fi
echo "$animal"
}
A=true
ok
因此,上面的例子打印了相同的结果,但哪一个是最好的实践?我更喜欢示例2,但我见过很多人像示例1一样在函数内部声明局部变量。是否最好像下面这样将所有局部变量在顶部声明:
function ok() {
# all local variable declaration must be here
# Next statement
}
USER=me
保留环境变量,然后得到意想不到的结果。所以最好避免使用所有大写字母的变量。https://pubs.opengroup.org/onlinepubs/007904875/basedefs/xbd_chap08.html 。对于“导出”的变量,请使用大写字母,而不是“全局”变量。 - KamilCuk你给我的链接
是哪个链接? Google ShellGuide吗? `函数名称小写,用下划线分隔单词和
变量名称对于函数名称也是如此。` - KamilCuk${A}
测试变量以避免扩展,这只是一个在ifelse语句内运行代码的示例,因为我的原始问题是关于ifelse语句内部局部变量作用域的。我从你那里学到的唯一新东西就是不要使用function
来声明函数。谢谢。 - Kalib Zen