具有 Python 问题的 LLDB:专门为一个可执行文件设置 PATH?

LLDB with Python problem: set PATH exclusively for one executable?

有没有办法在 bash 脚本中专门为一个可执行文件设置 PATH 变量?

我想这样做是因为 macOS 的 LLDB 不知何故需要系统安装的 Python,而不是我的 Anaconda 管理的 Python,因此我需要确保 /usr/binPATH。但我更喜欢 Anaconda 管理的 Python 日常使用,所以我不想永久设置 PATH 只是为了适应 LLDB。

在使用 LLDB 之前和之后临时手动编写 PATH 很麻烦,所以我正在考虑某种包装脚本或别名来自动执行此例程。

P.S。 LLDB 与 Homebrew-managed Python.

有同样的问题

根据定义,环境变量是针对每个进程的。每个进程都有一份环境副本,它可以根据自己的原因对其进行修改。

要仅针对一次调用覆盖 PATH,所有 sh 兼容的 shell 都允许您说

PATH=newvalue executable with arguments

executable with arguments 的执行期间将 PATH 设置为 newvalue,然后将值恢复到之前的状态(当前值,如果它是未设置)。

如果你想在每次执行某事时覆盖环境中的某些东西,你需要一个包装器。假设您在 PATH 中的 /usr/bin 之前有 /usr/local/bin,您可以在 /usr/local/bin/something 中安装它以使用包装器覆盖 /usr/bin/something

#!/bin/sh
PATH=newvalue
exec /usr/bin/something "$@"

记住 chmod a+x 当然,您首先需要 root 才能拥有对该目录的写入权限。

对于您的私人需求,.profile 中的 shell 功能或类似功能就足够了。

something () {
    PATH=newvalue command something "$@"
}