zsh
zsh
設定ファイル
| ファイル | ロードされるタイミング | 用途 |
|---|---|---|
| ~/.zshenv | 起動時 | 定期実行されるスクリプトなどでも使用したい環境変数 |
| ~/.zprofiole | ログインシェル起動時 | 環境変数の設定 |
| ~/.zshrc | インタラクティブシェル起動時 | エイリアス、補完、オプション、シェルプロンプトの設定など |
| ~/.zlogin | ログインシェル起動時 | .zshrc実行後に設定されて欲しい環境変数 |
zshを起動すると、この表の上から順に読み込まれる。
zprofileとzshrcを使うのが基本。zloginが必要になる場面はあまりない。zprofileには環境変数を設定、zshrcにはインタラクティブシェル(ターミナル上の対話式CLI、黒い画面でカタカタコマンドを打つと言われてイメージする使い方)で必要な設定を記述する。
rustやvoltaをインストールするとzshenvが作成されて環境変数が書き込まれる。手動で編集する必要はほぼない。zshenvはzshシェルスクリプトの実行時にも読み込まれる。
bashとの違い
変数でのスペースの扱い
bashではスペースを含むと別単語として展開される。““で囲むとひと塊りの文字列として展開される
$ w="echo hoge" $ $w hoge fuga $ "$w" echo hoge fuga: command not found
zshではスペースを含んでいてもひと塊りの文字列として展開される
$ w="echo hoge fuga" $ $w zsh: command not found: echo hoge fuga
変数のみで配列全体を表現
bash
$ A=(a b c)
$ echo $A
a
$ echo ${A[@]}
a b c
zsh
$ A=(a b c) $ echo $A a b c
セパレータを変更できる。IFSの変更が不要
$ A=(a b c)
$ echo ${(j/,/)A}
a,b,c
zsh.txt · 最終更新: by nullpon