ユーザ用ツール

サイト用ツール


zsh

zsh

設定ファイル

ファイル ロードされるタイミング 用途
~/.zshenv 起動時 定期実行されるスクリプトなどでも使用したい環境変数
~/.zprofiole ログインシェル起動時 環境変数の設定
~/.zshrc インタラクティブシェル起動時 エイリアス、補完、オプション、シェルプロンプトの設定など
~/.zlogin ログインシェル起動時 .zshrc実行後に設定されて欲しい環境変数

zshを起動すると、この表の上から順に読み込まれる。

zprofileとzshrcを使うのが基本。zloginが必要になる場面はあまりない。zprofileには環境変数を設定、zshrcにはインタラクティブシェル(ターミナル上の対話式CLI、黒い画面でカタカタコマンドを打つと言われてイメージする使い方)で必要な設定を記述する。

rustvoltaをインストールすると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