我添加了这个 “导出 HISTCONTROL=ignoredups” 排队 ~/.bashrc
文件到 避免 Bash 历史记录中的重复条目 在我的 Linux 桌面上。 你有没有注意到我在前面加上了 HISTCONTROL
变量与 "export"
? 你知道吗 – 什么是 "export"
选项? 如果您想知道定义之间有什么区别 bash 变量 有和没有导出选项,请继续阅读!
定义带和不带导出的 Bash 变量之间的区别
我们定义一个变量 export
使其可用于所有子进程(或子进程)。 含义 – 如果您定义一个变量 和 export
如下所示,
export variable_name=value
该变量可用于您从该 shell 进程运行的任何子进程。
如果你定义一个变量 没有 export
如下所示,
variable_name=value
该变量仅限于 shell,对任何其他子进程均不可用。 您可以将它用于临时和/或循环变量。
请允许我向您展示一个 example,所以你可以更好地理解它。
让我定义一个名为的变量 "ostechnix"
没有 "export"
如下所示:
$ ostechnix="Welcome to ostechnix.com blog!"
现在使用“echo”命令显示值:
$ echo $ostechnix
它将显示 ostechnix 变量的值:
Welcome to ostechnix.com blog!
现在,通过运行以下命令启动一个新的 Bash shell 会话:
$ bash
然后,尝试使用显示 ostechnix 变量的值 echo
命令:
$ echo $ostechnix
看? 它不返回任何东西! 您只看到空白输出。 因此证明,当我们定义一个没有 export
,它对子进程不可用。
让我们再次定义相同的变量 export
选项:
$ export ostechnix="Welcome to ostechnix.com blog!"
显示变量的值:
$ echo $ostechnix
样本输出:
Welcome to ostechnix.com blog!
启动一个新的 shell 会话:
$ bash
再次尝试显示变量的值:
$ echo $ostechnix
它现在将返回该值。
因此,导出使该变量可用于该 shell 环境中的任何其他子进程。