默认情况下,Elvish(macOS,Homebrew)有一个基本的PATH定义:
~> echo $paths
[/usr/bin /bin /usr/sbin /sbin]
我想向它添加/usr/local/bin
和/usr/local/sbin
项,但不从头开始编写文字,如
set paths = [/usr/bin /bin /usr/sbin /sbin /usr/local/bin /usr/local/sbin]
更常见的贝壳的基本模式当然是
export PATH="/usr/local/bin:/usr/local/sbin:$PATH"
精灵语中的列表是不可变的,所以我想做一些类似
set paths = paths + [/usr/local/bin /usr/local/sbin]
但是我在文档中没有找到任何东西,我的尝试失败了:
~> set paths = paths + [/usr/local/bin /usr/local/sbin]
Exception: arity mismatch: assignment right-hand-side must be 1 value, but is 3 values
[tty 2]:1:1: set paths = paths + [/usr/local/bin /usr/local/sbin]
~> set paths = [$paths /usr/local/bin /usr/local/sbin]
Exception: path must be string
[tty 3]:1:5: set paths = [$paths /usr/local/bin /usr/local/sbin]
2条答案
按热度按时间rmbxnbpk1#
您可以直接使用
set E:PATH = "/usr/local/bin:/usr/local/sbin:"$E:PATH
修改路径,也可以像这样使用conj
。nzk0hqpo2#
感谢Pavlo和他们的
conj
概念,我找到了另一种方法,为了完整起见,我将在这里列出:这里的优点是能够 prepend值到列表中(
conj
只做追加),这在一般情况下显然很重要,但在管理$PATH
时也很重要。