Linux 如何使用变量预设启动贝壳(鱼)

Linux 如何使用变量预设启动贝壳(鱼),linux,shell,unix,terminal,fish,Linux,Shell,Unix,Terminal,Fish,我想使用fish,但我通常使用的提示符具有unicode字符,而retro terminal中的字体不支持unicode字符。我让我的fish_prompt函数检查$simple_prompt是否为1,我知道它可以工作,但我需要一种方法来设置变量,仅针对该终端实例,并在retro terminal中使用startup命令选项 到目前为止,最接近我的是fish-c“set-gx simple_prompt 1;fish”,但它将变量导出到系统上的所有shell实例,并使所有这些实例的提示都变得简单

我想使用fish,但我通常使用的提示符具有unicode字符,而retro terminal中的字体不支持unicode字符。我让我的
fish_prompt
函数检查
$simple_prompt
是否为1,我知道它可以工作,但我需要一种方法来设置变量,仅针对该终端实例,并在retro terminal中使用startup命令选项


到目前为止,最接近我的是
fish-c“set-gx simple_prompt 1;fish”
,但它将变量导出到系统上的所有shell实例,并使所有这些实例的提示都变得简单
fish-c“set-g simple_prompt 1;fish”
不工作。

您启动的下一个fish实例可能看不到
set-g simple_prompt 1
。全局变量仅对当前shell实例可见。如果您正在使用的终端设置了一些环境变量,允许您确定fish正在该特定终端内运行,我将使用该信息。例如,macOS上的iTerm2导出了
ITERM_配置文件
,以及它特有的四个其他环境变量。如果Cool Retro终端不这样做,可能还有其他方法检测该终端类型。它可能与检查
变量一样简单

如果上述解决方案不是一个选项,那么唯一的解决方案就是一个环境变量,就像第一个解决方案一样。因为您说它将该变量导出到所有fish实例中,所以我怀疑您没有准确地描述您正在做的事情。因为如果将该命令设置为Cool Retro Terminal启动shell时应使用的命令,则只会影响在该终端中运行的fish实例。这就是你想要的