具有 Python 问题的 LLDB:专门为一个可执行文件设置 PATH?
LLDB with Python problem: set PATH exclusively for one executable?
有没有办法在 bash 脚本中专门为一个可执行文件设置 PATH 变量?
我想这样做是因为 macOS 的 LLDB 不知何故需要系统安装的 Python,而不是我的 Anaconda 管理的 Python,因此我需要确保 /usr/bin
在PATH
。但我更喜欢 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 "$@"
}
有没有办法在 bash 脚本中专门为一个可执行文件设置 PATH 变量?
我想这样做是因为 macOS 的 LLDB 不知何故需要系统安装的 Python,而不是我的 Anaconda 管理的 Python,因此我需要确保 /usr/bin
在PATH
。但我更喜欢 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 "$@"
}