繁体   English   中英

如何在鱼壳中设置变量?

[英]How to set variables in Fish shell?

我在 Ubuntu(基本操作系统和 Linux Mint)中的鱼壳中的 set 命令不起作用。 变量保持为空,甚至教程中的示例也不起作用,即:

(set foo hi --> # 将变量 $foo 的值设置为 'hi'。)。

在脚本中,我尝试执行以下操作,

set COUNTRY US CN MX

但是当我想通过$COUNTRY调用变量时,没有答案。

我究竟做错了什么?

你真的用fish的壳呢? 因为你的例子对我有用:

$ set COUNTRY US CN MX
$ echo $COUNTRY
US CN MX
$ set --show COUNTRY
$COUNTRY: not set in local scope
$COUNTRY: set in global scope, unexported, with 3 elements
$COUNTRY[1]: length=2 value=|US|
$COUNTRY[2]: length=2 value=|CN|
$COUNTRY[3]: length=2 value=|MX|
$COUNTRY: not set in universal scope

我怀疑您正试图在另一个进程中使用COUNTRY 在这种情况下,您需要使用set -x COUNTRY US CN MX导出 var。 但请注意,fish vars 是数组,并且导出具有多个值的 var 将无法被子进程理解(除非该子进程是一个fish shell)。

此外,听起来您可能正在尝试通过鱼脚本修改父进程中的变量。 那行不通。 您不能修改父进程的变量。 即使它们是环境变量,也不会。 这不是鱼的限制。 它是 UNIX 进程模型设计中固有的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM