gpt4 book ai didi

linux - Bash - 将所有变量设为本地变量是个好主意吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:46:23 26 4
gpt4 key购买 nike

我正在编写一个编译成 bash 的编译器。将一些变量声明为局部变量而将一些变量声明为全局变量似乎很痛苦——即使我不在函数内部,我也可以将变量声明为局部变量。在 bash 中使所有变量成为局部变量是个好主意吗?

最佳答案

你应该只在需要的时候使用global变量,因为它会增加调试的难度; bash 官方文档对 local 变量这样说:

local [option] [name[=value] ...] .

For each argument, a local variable named name is created, and assigned value. The option can be any of the options accepted by declare. When local is used within a function, it causes the variable name to have a visible scope restricted to that function and its children. With no operands, local writes a list of local variables to the standard output. It is an error to use local when not within a function. The return status is 0 unless local is used outside a function, an invalid name is supplied, or name is a read‐ only variable.

只有在函数中时才应该使用 local 变量,否则会出错。

你还应该看看什么是variable scope means .如果您将所有变量设为全局范围,那么调试起来会很痛苦。如果您将 var 设为 全局范围,然后 shadow 它(可能是偶然地)在一个函数中作为 var a,创建一个局部作用域,你会让它更难调试。

关于linux - Bash - 将所有变量设为本地变量是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44075044/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com