如何在fish shell脚本中设置环境变量

Kek*_*eke 4 fish

在我的鱼 shell 脚本“hoge.fish”中,我有一个设置环境的代码。

#!/usr/local/bin/fish
set -x HOGE "hello"
Run Code Online (Sandbox Code Playgroud)

但在我执行此脚本后,环境设置不正确并且不输出任何内容。

./hoge.fish
echo $HOGE
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这些代码,但没有一个起作用。

set -gx HOGE "hello"
set -gU HOGE "hello"
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

  • 操作系统:macOS High Sierra10.13.6
  • 鱼版: 2.7.1
  • iTerm2:3.2.0

Jim*_*wis 5

当您运行脚本时,它可能正确设置环境变量,但仅在您运行脚本时创建的进程中......而不是在您运行脚本的父会话中!当脚本退出时,进程及其环境都被破坏。

如果您想更改当前环境中的环境变量,根据您使用的交互式 shell,您可以使用类似 的命令source hoge.fish,它将在当前会话而不是子进程中执行命令,因此环境变量的更改将坚持。