是否有一种从PATH类shell变量中删除元素的惯用方法?
那是我想要的
PATH=/home/joe/bin:/usr/local/bin:/usr/bin:/bin:/path/to/app/bin:.
Run Code Online (Sandbox Code Playgroud)
和删除或替换的/path/to/app/bin,而不重挫可变的其余部分.允许我将新元素放在任意位置的额外点数.目标将由明确定义的字符串识别,并且可以在列表中的任何点处发生.
我知道我已经看到了这一点,并且可以自己拼凑一些东西,但我正在寻找一个很好的方法.便携性和标准化加分.
我使用bash,但欢迎你最喜欢的shell中的例子.
这里的上下文是需要在多个版本之间方便地切换(一个用于进行分析,另一个用于处理框架)的大型科学分析包,它产生几十个可执行文件,数据存储在文件系统周围,并使用环境变量帮助找到所有这些东西.我想编写一个选择版本的脚本,并且需要能够删除$PATH与当前活动版本相关的元素,并用与新版本相关的相同元素替换它们.
这与$PATH在重新运行登录脚本等时防止重复元素的问题有关.