为什么“ source〜/ .profile”不断添加到我的$ PATH中?

费萨尔M

这绝不是影响我的问题,只是出于好奇...

我已将〜/ .profile添加export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin bash搜索中,包括一个新目录。

然后,我跑去$ source ~/.profile重新加载May Shell,然后使用$ echo $PATH

问题是:
-为什么每次我跑步时source ~/.profile,它都会再次附加相同的信息,
-我如何清除它?

我尝试了什么:
-尝试多次运行它,并不断添加相同内容
-试图弄清楚该source命令的作用,但找不到它在哪里which source

Arkadiusz Drabczyk

第一个问题:

为什么每次我运行源〜/ .profile时,它都会再次附加相同的信息

简单来说,source <FILE>不会重新加载您的shell。它只执行所有保存的命令,<FILE>就像它们是您在终端中直接键入的一样。

第二个问题:

我该如何清除?

要重新加载外壳,请打开一个新的终端窗口/选项卡。只是做bash还是exec bash不做,因为新进程将继承其父环境。

第三个问题:

试图弄清楚source命令的作用,但是找不到它在哪里

正如我在这里曾经解释过的https://unix.stackexchange.com/a/202326/72304

可以在Bash中运行而无需键入显式路径的所有命令,例如./command,可以分为两部分:Bash shell内置函数和外部命令。Bash shell内置程序随Bash一起安装,并且是其中的一部分,而外部命令则不是Bash的一部分。这很重要,因为Bash shell内置文件记录在man bash内,并且它们的文档也可以通过help命令调用,而外部命令通常记录在其自己的手册页中,或带有-h,--help标志之王。要检查命令是内置的Bash Shell还是外部命令:

$  type local 
 local is a shell builtin

如果用作命令名称(来自帮助类型),它将显示如何解释命令。在这里我们可以看到local是一个内置的shell。让我们看另一个例子:

$ type vim 
vim is /usr/bin/vim

在您的情况下:

$ type source
source is a shell builtin

现在我们知道这不是外部命令,而是shell bultin(这就是为什么which找不到它的原因),因此我们需要使用help它来查看其作用:

$ help source 
    source: source filename [arguments]
    Execute commands from a file in the current shell.

    Read and execute commands from FILENAME in the current shell.  The
    entries in $PATH are used to find the directory containing FILENAME.
    If any ARGUMENTS are supplied, they become the positional parameters
    when FILENAME is executed.

    Exit Status:
    Returns the status of the last command executed in FILENAME; fails if
    FILENAME cannot be read.

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

当我使用sudo时,为什么不将此目录添加到我的PATH中?

什么是原型,为什么将它们添加到我的json对象中

为什么我不能在golang中将主库添加到我的库中?

为什么我的图像没有添加到我的JButton中?

为什么将pod中的文件添加到我的覆盖率报告中?

为什么Kubuntu将.directoy文件添加到我的目录中?

为什么不能将项目添加到我的向量中?

为什么在 PhpStorm 中没有目录/文件可以添加到我的范围?

为什么Protege将`xml`命名空间添加到我的本体中?

为什么Go将字节添加到我的字符串中?

为什么BeautifulSoup将<html> <body> <p>添加到我的结果中?

为什么 Django 模板引擎将 myapp/myview 添加到我的 URL 中?

Swift:为什么在使用追加时没有元素添加到我的数组中?

为什么将undefined添加到我的字符串中?

为什么我不想在安装时将Python.exe添加到我的系统路径中?

为什么我的字典没有被添加到我的数组中?indexPath.row 返回 nil

为什么 rmarkdown 在我编织文件时将 NA 值添加到我的 ggplot 中?

为什么Rails 4.2 +响应程序不断告诉我将响应程序添加到Gemfile中?

为什么在网址生成器中将“ +”添加到我的所有坐标中?

包括Google Play服务库时,为什么权限会自动添加到我的AndroidManifest中

为什么最新的.net 4.7将无效的configsection添加到我的web.config中?

为什么 Newtonsoft.Json.JsonConvert.SerializeObject 将“_repository”添加到我列表中的每个项目?

为什么将这个额外的“?_ = 1579068576376”添加到我的API请求的URL'/ api / customers'中

为什么在使用merge-sort时将额外的元素添加到我的void **数组中?

为什么将两行添加到我的 SQLite 数据库表中?

什么是BeautifulSoup4添加到我的SVG标签中?

什么是$$ hashKey添加到我的JSON.stringify结果中

猫鼬-这个额外的_id属性被添加到我的友谊属性中是什么?

什么是data-gr-cs-loaded =“ true”属性添加到我的代码中