gpt4 book ai didi

path - 附加到 $PATH 与使用别名 : Which is better?

转载 作者:行者123 更新时间:2023-11-29 09:23:02 25 4
gpt4 key购买 nike

至少在某些情况下,别名和添加 $PATH 位置可以互换使用。例如,查看 python 工具 couchapp ,我需要为可执行文件添加别名 ( as helpfully described here ) 或通过 $PATH 使可执行文件可用。

这些是可以实现此目的的两条线:

alias couchapp="~/Library/Python/2.7/bin/couchapp"

export PATH=$PATH:~/Library/Python/2.7/bin/

这两者是否有一个非常明确的“更好”的选择?为什么或为什么不?

最佳答案

  • 别名是 shell 功能:任何直接调用实用程序的环境,而不涉及shell 看到别名。

    • 注意:即使从 Python 等语言调用 shell 命令(使用例如 os.system()),用户特定的 shell 初始化文件通常是 < em>未调用,因此用户特定的别名仍然将不可见。
  • 添加到 $PATH环境变量 的目录受到任何试图通过 仅文件名< 调用可执行文件的进程的尊重/em>,无论是否通过 shell。

    • 同样,这假设任何调用进程都看到感兴趣的 $PATH 环境变量添加,因此 用户特定 初始化文件所做的添加通常是 看不到除非调用进程是从交互式 shell 启动的。

查找成本

如果您知道 shell 将参与调用您的实用程序,则可以通过定义按完整路径调用可执行文件的别名 来降低开销。
当然,您需要为每个 可执行文件执行此操作,以便仅按名称调用。

相比之下,将目录添加到 $PATH 变量可能会增加通过仅文件名 定位给定可执行文件的开销,因为列出的所有目录都必须一一搜索直到找到一个包含指定名称的可执行文件(如果有的话)。

优先级

如果涉及 shell,别名优先于 $PATH 查找。
当然,后面的别名定义可以覆盖前面的。

如果不涉及 shell 或不存在给定名称的别名,$PATH 查找将按照目录在变量中列出的顺序进行。

关于path - 附加到 $PATH 与使用别名 : Which is better?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41155486/

25 4 0
文章推荐: MySQL查询
文章推荐: java - PHP exec(),我可以启动并忘记吗?
文章推荐: MySQL 多个 COUNT 组
文章推荐: java调试库
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com