相关疑难解决方法(0)

在 bash 中,我如何定义“命令范围”变量?

我正在阅读有关 bash 架构的本书,其中一位 bash 维护者说:

shell 函数调用有不同的变量作用域,命令前面的赋值语句设置的变量有不同的临时作用域。例如,当这些赋值语句位于 shell 内置的命令之前时,shell 必须跟踪解析变量引用的正确顺序,并且链接的作用域允许 bash 这样做。

我无法弄清楚如何做到这一点。这会打印出一个空白的换行符:

foo="bar" echo $foo
Run Code Online (Sandbox Code Playgroud)

这会打印出“bar”,但该foo变量在命令完成后仍被定义,所以我不认为它是“命令范围”:

foo="bar"; echo $foo
Run Code Online (Sandbox Code Playgroud)

如何定义具有命令范围的变量?

linux bash

6
推荐指数
2
解决办法
1780
查看次数

标签 统计

bash ×1

linux ×1