簡體   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