有没有一种方法可以为bash脚本中的一个可执行文件专门设置PATH变量?
我要这样做是因为macOS的LLDB某种程度上需要系统集成的Python,而不是我的Anaconda管理的Python,因此我需要确保/usr/bin
位于PATH
的开头。但是我更喜欢Anaconda管理的Python日常使用,因此我不想为了容纳LLDB而永久设置PATH
。
在使用LLDB之前和之后临时手动编写PATH
很麻烦,因此我正在考虑某种可以自动执行此例程的包装器脚本或别名。
P.S。 LLDB在由Homebrew管理的Python中也有同样的问题。
答案 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