带有Python问题的LLDB:仅为一个可执行文件设置PATH?

时间:2018-10-10 05:20:47

标签: bash path lldb

有没有一种方法可以为bash脚本中的一个可执行文件专门设置PATH变量?

我要这样做是因为macOS的LLDB某种程度上需要系统集成的Python,而不是我的Anaconda管理的Python,因此我需要确保/usr/bin位于PATH的开头。但是我更喜欢Anaconda管理的Python日常使用,因此我不想为了容纳LLDB而永久设置PATH

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

P.S。 LLDB在由Homebrew管理的Python中也有同样的问题。

1 个答案:

答案 0 :(得分:1)

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

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

PATH=newvalue executable with arguments

在执行PATH的过程中将newvalue设置为executable with arguments,然后将值恢复为先前的状态(当前值;如果未设置,则取消设置)

如果您想在每次执行某些操作时在环境中覆盖某些内容,则需要一个包装器。假设您的{{1}中的/usr/local/bin之前有/usr/bin,则可以将其安装在PATH中,以使用包装器覆盖/usr/local/bin/something

/usr/bin/something

请记住#!/bin/sh PATH=newvalue exec /usr/bin/something "$@" ,当然,您首先需要chmod a+x才能对该目录具有写权限。

出于您的私人需要,您的root或类似的shell函数就足够了。

.profile