bash 和fish 脚本不兼容,但我想要一个文件来定义一些要由bash 和fish 初始化的环境变量。
我建议的解决方案是定义一个~/.env
包含环境变量列表的文件,如下所示:
PATH="$HOME/bin:$PATH"
FOO="bar"
Run Code Online (Sandbox Code Playgroud)
然后我可以在 bash 中获取它并制作一个脚本,将它转换为鱼格式并在鱼中获取。
我在想可能有比这更好的解决方案,所以我要求更好地在 bash fish 之间共享环境变量。
注意:我使用的是 OS X。
这是一个示例.env
文件,我希望 fish 和 bash 使用可笑的鱼的语法来处理(假设 ~/bin 和 ~/bin2 是空目录):
setenv _PATH "$PATH"
setenv PATH "$HOME/bin"
setenv PATH "$PATH:$HOME/bin2"
setenv PATH "$PATH:$_PATH"
Run Code Online (Sandbox Code Playgroud) 我想在fish
shell 中使用以下内容:
$ export arm='ARCH=arm CROSS_COMPILE=arm-eabi-'
$ make $arm
Run Code Online (Sandbox Code Playgroud)
这在shell 中工作正常,bash/zsh
但在shell 上无效fish
。
但是如果我在fish
shell 中执行以下命令:
$env tmp=arm make
Run Code Online (Sandbox Code Playgroud)
这工作正常。
有人可以帮我解决这个问题吗?