是否可以在 Fish Shell 中通过导出设置环境变量?我正在开发一个以这种方式配置变量的项目,仅仅为鱼维护一个单独的配置文件是没有意义的。
在 bash 中考虑这个例子:
echo -e "foo=1\nfoobar=2\n" > foo; export $(cat foo | xargs); env | grep foo
foo=1
foobar=2
Run Code Online (Sandbox Code Playgroud)
在fish shell中,它似乎只会设置一个变量,并且仅当文件中有一个变量时:
~ $ echo -e "foo=3\nfoobar=4" > foo; export (cat foo | xargs); env | grep foo
~ $ echo -e "foo=3" > foo; export (cat foo | xargs); env | grep foo
foo=3
Run Code Online (Sandbox Code Playgroud)
这只是 Fish 出口实施中的一个缺陷/遗漏吗?
这个问题与另外两个帖子相似但不同:
你的例子几乎完美地工作 - 这不是export
问题,而是使用xargs
.
尝试:
echo -e "foo=3\nfoobar=4" > .env; export (cat .env); env | grep foo
Run Code Online (Sandbox Code Playgroud)
原因是命令替换分隔换行符上的参数,并将xargs
其删除:
> count (cat .env | xargs)
1
> count (cat .env)
2
Run Code Online (Sandbox Code Playgroud)