🍣
Nushellの変数について
変数
mutable(変更可能)な変数
mutコマンドを使って宣言と初期化を行います。初期値がないとエラーとなります。
mut x = 0
$x = $x + 1
$x
1
immutable(変更不可)な変数
letコマンドを使って宣言と初期化を行います。初期値がないとエラーとなります。次のように、宣言後に値を変更するとエラーとなります。
let x = 0
❯ $x = $x + 1
Error: nu::shell::assignment_requires_mutable_variable (link)
× Assignment to an immutable variable.
scopeとshadow
(1)でimmutableな変数宣言して0で初期化します。次のブロックで再度宣言することで上書きとなります。ただ(2)のスコープ内のみ有効なため、(3)での変数の値は変更されません。
❯ do {
∙ let x = 0 # (1)
∙ {
∙ let x = $x + 10 # (2)
∙ }
∙ print $x # (3)
∙}
<Closure 73>
0
環境変数
環境変数(USER:ユーザ名,PWD:カレントディレクトリなど)は変数$env
で管理されています。
$env.PWD
特殊変数
- $in
パイプ中のデータ全体を指す。 - $nothing
意味のないnothing
を返す。ブロックで何も返さないことを明示する。 - $env.NU_LIB_DIRS
Nushellスクリプトの格納場所を保持しています。デフォルトは$HOME/.config/nushell/scripts
となっています。 - $env.NU_PLUGIN_DIRS
Nushellプラグインの格納場所を保持しています。デフォルトは$HOME/.config/nushell/plugins
となっています。
Discussion