押さえておきたい変数あれこれ

まだ記述途中〜
pre記法?のzsh、やけにカラフルで逆に見難いような:(

シェル変数

シェルが内部で保持している変数であり、子プロセスには引き継がれない。

設定

$ shell_var="shellvar"

削除(変数そのものを削除する)

$ unset shell_var

シェル変数の一覧を表示

$ set

環境変数

環境変数は子プロセスに引き継がれる。
環境変数は慣例として大文字で記述する。

設定

$ ENV_VAR="envvar" #<= この時点ではシェル変数
$ export ENV_VAR   #<= exportにより環境変数となる
$ export ENV_VAR
$ ENV_VAR="envvar"
$ export ENV_VAR="envvar"

削除

$ unsetenv ENV_VAR

環境変数の一覧を表示

$ env

環境変数に関するtips

1. 一度exportされた変数はunsetするまで環境変数であり続ける

$ echo $LANG
ja_JP.utf8
$ date
$ LANG=C
$ bash     #<= 子プロセス
$ date     #<= 親プロセスで変更された環境変数(LANG=C)を引き継いでいる

2. commandを実行するときだけ一時的に環境変数を設定

$ varname=value command
$ date
$ LANG=C date
$ date