スコープオプション(fish独自の概念)
| オプション | 説明 |
|---|---|
| なし | 現在の関数内でのみ有効(ローカル)。関数外ではグローバル |
-l / --local |
現在のブロック内でのみ有効(ローカル) |
-g / --global |
現在のシェルセッション全体で有効(グローバル) |
-U / --universal |
シェルを閉じても永続化。全fishインスタンスで共有(ユニバーサル) |
エクスポートオプション(一般的なシェルの概念)
| オプション | 説明 |
|---|---|
-x / --export |
子プロセスに引き継がれる(環境変数になる) |
-u / --unexport |
子プロセスに引き継がれない |
環境変数はUnix/Linux共通の概念。bashの
exportと同等。
組み合わせ例
# ローカル変数(関数/ブロック内のみ) set -l name "Alice" # グローバル変数(セッション全体) set -g name "Bob" # 環境変数(子プロセスに渡る、ローカルスコープ) set -x API_KEY "secret" # グローバル + エクスポート(よく使うパターン) set -gx PATH $HOME/.local/bin $PATH # ユニバーサル + エクスポート(永続化される環境変数) set -Ux EDITOR vim
スコープとエクスポートの関係
スコープ(-l/-g/-U)とエクスポート(-x)は独立した概念。
- スコープ = どの範囲で変数が見えるか(fish内部の話)
- エクスポート = 子プロセスに渡すか(OS全体の話)