我有点新的Linux,而我又盲目地运行一些命令,为了把事情做好。 我认为这不会问这些问题类型的浪费,因为更多的新人们将不得不对这些规则的知识。
我开始上班詹金斯最近,然后我不得不用这个export
命令来运行詹金斯战争档案 。 所以,我需要知道export
的命令,一般做,为什么我们需要运行这个命令,在运行詹金斯(詹金斯家设置后)。
谢谢!
我有点新的Linux,而我又盲目地运行一些命令,为了把事情做好。 我认为这不会问这些问题类型的浪费,因为更多的新人们将不得不对这些规则的知识。
我开始上班詹金斯最近,然后我不得不用这个export
命令来运行詹金斯战争档案 。 所以,我需要知道export
的命令,一般做,为什么我们需要运行这个命令,在运行詹金斯(詹金斯家设置后)。
谢谢!
export
在sh
和相关的壳(如bash
),标志着一个环境变量导出到子流程,使孩子继承他们。
export
在POSIX定义 :
外壳应给予出口属性对应于指定的名称,并应使他们在随后执行的命令的环境变量。 如果一个变量的名称后面=字,则该变量的值应被设置成字。
我猜你从窗户背景的。 所以我会对比他们(我有点新的Linux太)。 我发现用户的回复我的评论,是在盘算的事情了有益的。
在Windows中,一个变量可以是永久的或没有。 术语环境变量包括与所述SET命令CMD壳中设置的变量,以及当变量被设定在窗口GUI内,由此设置在注册表中,并且成为新CMD窗口可见的。 例如,在Windows文档set命令https://technet.microsoft.com/en-us/library/bb490998.aspx “显示,设置或删除环境变量。如果不带参数,设置显示当前环境设置。” 在Linux中,设置不显示环境变量,它显示壳变量,它不调用/称之为环境变量。 此外,Linux不使用集来设置变量(除了位置参数和壳选择,这是我作为结尾的说明解释)中,仅显示它们甚至然后仅显示shell变量。 Windows使用用于设置和显示如集= 5集,Linux没有。
在Linux中,我想你可以做一个脚本,设置在启动时,如变量/etc/profile
或/etc/.bashrc
但除此之外,他们不是永久性的。 它们被存储于RAM。
Linux中有shell变量和环境变量之间的区别。 在Linux中,shell变量只在当前的shell和环境变量,是在外壳和所有子壳。
您可以查看与shell变量set
命令(但请注意,与Windows,变量无法在Linux中设置使用set命令)。
set -o posix; set
set -o posix; set
(这样做一套-o POSIX一次第一,帮助不会显示太多不必要的东西)。 因此, set
显示器shell变量。
您可以查看环境变量与env
命令
壳变量都设置有例如只是a = 5
环境变量设置有出口,出口也设置了shell变量
在这里,你看到shell变量ZZZ组与ZZZ = 5,看看它显示了运行时set
,但不显示为一个环境变量。
在这里我们看到YYY设置有出口,所以这是一个环境变量。 看看它同时显示shell变量和环境变量下
$ zzz=5
$ set | grep zzz
zzz=5
$ env | grep zzz
$ export yyy=5
$ set | grep yyy
yyy=5
$ env | grep yyy
yyy=5
$
其他有用的线程
https://unix.stackexchange.com/questions/176001/how-can-i-list-all-shell-variables
https://askubuntu.com/questions/26318/environment-variable-vs-shell-variable-whats-the-difference
注意 - 一个点,这阐述了一下,有些要纠正我写的是什么,是在Linux下的bash,“集”可以用来设置“位置参数”和“外壳选项/属性”,和技术上的两个这些都是变数,但该名男子网页可能无法描述它们的方式。 但尽管如此,如前所述,设置将不设置shell变量或环境变量)。 如果set asdf
然后设置$ 1 ASDF,如果你echo $1
你看ASDF。 如果set a=5
也不会设置变量,等于5将设置位置参数$等于1的“1 = 5”的字符串。 所以,如果你见过在Linux中设置= 5这可能是一个错误,除非有人竟然要该字符串= 5,$ 1。 另一件事是linux的设置可以设置,是shell选项/属性。 如果设置-o你看到他们的列表。 你也可以例如做set -o verbose
,关闭,对冗长的转(顺便说一句默认恰好是关闭,但没什么区别这个)。 或者你还可以set +o verbose
把冗长了。 Windows有其set命令没有这样的用法。
简单来说,当你打开一个新的shell会话环境变量设置。 另外,如果您更改任何变量值中的任何时间,外壳没有采摘这种变化的方式。 这意味着你作出生效的新的shell会话的变化。 该export
命令,在另一方面,提供更新关于你导出的变量所做的更改当前shell会话的能力。 你不必等到新的shell会话使用你改变了变量的值。