【问题标题】:Need an explanation of this scripting command需要这个脚本命令的解释
【发布时间】:2014-03-04 06:54:31
【问题描述】:

export PATH=$PATH:~/bin 命令完成了什么?

我比现在更想了解这一点;请帮忙!

【问题讨论】:

  • 您已经了解了什么?没有这个,很难回答。
  • 嗯,我认为是它修改了系统路径变量..这导致系统实用程序能够定位在 shell 脚本中使用的命令,并测试它们的语法?
  • 还是只是将环境PATH变量复制到本地变量空间?
  • 从其他人的答案中添加,它不会永久修改 PATH 变量。它只会影响当前的shell。

标签: linux bash scripting administrative


【解决方案1】:

PATH 是一个环境变量,它指定要搜索的目录(按从左到右的顺序)以查找可执行文件。当您调用 gzip 之类的内容时,$PATH 环境变量会在 : 上进行拆分,并且会搜索每个路径以查看它是否包含 gzip

通常会在此变量前添加目录,以便在现有(默认)位置之前搜索它们。这通常在您想要将非标准目录添加到 PATH 时完成,以便您可以将应用程序安装到子目录中。

export PATH=$PATH:~/bin

附加 ~/bin(即“$HOME/bin”)到 PATH,以便您可以从主目录中的“bin”文件夹执行脚本/二进制文件。

您可以使用which 命令确定将从您的PATH 中执行哪个命令。例如:

-bash$ which gzip
/usr/bin/gzip

您也可以删除 export 关键字,但这样做时,从您的 bash shell 调用的脚本将看不到更改后的 PATH 变量。

查看echo $PATHenv | grep PATH 的输出,看看该变量是什么样的。

【讨论】:

    【解决方案2】:

    它会修改PATH 环境变量的当前设置并(重新)导出它。

    更改是将~/bin 添加到PATH,因此作为最后的手段,它会在您的主目录下的bin 目录中查找(由$HOME 指定,通常但不一定是与您在密码数据库中指定并由~username 标识的登录目录相同的命令。这意味着有一个额外的地方可以搜索命令。

    就我个人而言,我将bin 目录放在了PATH 的前面;我的命令会覆盖其他人的命令。

    【讨论】:

      【解决方案3】:
      export PATH=$PATH:~/bin
      

      会将~/bin 附加到您当前shell 中的当前$PATH

      如果你把它放在你的 shell 的一个 init 文件中,例如 ~/.bashrc for bash,你可以将~/bin 永久添加到你的$PATH

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-28
        • 2017-02-07
        • 2014-12-20
        相关资源
        最近更新 更多