相关疑难解决方法(0)

导出的 shell 变量和不在 bash 中的变量之间的区别

Bash 似乎区分已导出的变量和未导出的变量。

例子:

$ FOO=BAR
$ env | grep FOO
$ set | grep FOO
FOO=BAR
Run Code Online (Sandbox Code Playgroud)

set看到变量但env没有。

$ export BAR=FOO
$ env | grep FOO
BAR=FOO
$ set | grep FOO
BAR=FOO
FOO=BAR
Run Code Online (Sandbox Code Playgroud)

set看到两个变量,但env只看到导出的变量。

我知道这set是一个内置的 bash 而env不是。

导出的变量和不导出的变量之间有什么区别?

shell environment-variables

52
推荐指数
1
解决办法
2万
查看次数

shell 变量可以有哪些作用域?

我刚遇到一个问题,显示我不清楚 shell 变量的范围。

我试图使用bundle install,这是一个 Ruby 命令,它使用 的值$GEM_HOME来完成其工作。我已经设置了$GEM_HOME,但是在我使用之前,该命令忽略了该值export,如export GEM_HOME=/some/path.

我读到这使变量以某种方式“全局”(也称为环境变量),但我不明白这意味着什么。我了解编程中的全局变量,但不了解不同的程序。

此外,鉴于我设置的此类变量仅适用于当前的 shell 会话,我将如何为守护进程设置它们?

shell 变量可以有哪些作用域?

environment-variables

44
推荐指数
3
解决办法
6万
查看次数

env、setenv、export 和何时使用有什么区别?

最近我注意到我们有 3 个选项来设置环境变量:

  1. export envVar1=1
  2. setenv envVar2=2
  3. env envVAr3=3

如果有其他方法,请赐教。

我什么时候应该更喜欢一个?请提出指导方针。

至于 shell 兼容性,哪个是最广泛的(涵盖更多的 shell 方言)?

我已经注意到这个答案,但我想用env使用偏好指南来扩展这个问题。

shell bash environment-variables

27
推荐指数
2
解决办法
5万
查看次数

Shell 变量与环境变量,如果两者具有相同的名称,则首选哪一个?

在 Bash 中键入以下内容:

env | grep USER
Run Code Online (Sandbox Code Playgroud)

set | grep USER
Run Code Online (Sandbox Code Playgroud)

给两次相同的用户名。

我怎么知道,例如在输入时echo $USER是否显示了 shell 或环境变量?

shell environment-variables

10
推荐指数
1
解决办法
2106
查看次数

是否有一个 bash 内置命令可以显示当前 shell 的环境变量?

env并且printenv都是外部命令,即可执行文件,而不是 bash 内置命令。它们的问题_在于它们输出的一些环境变量(例如,我也想知道是否还有更多)不属于调用它们的 shell,请参见此处

bash environment-variables shell-builtin

-3
推荐指数
1
解决办法
385
查看次数