メモの日々


2017年12月05日(火) [長年日記]

[windows] Windows 10で非管理者ユーザで環境変数を設定する

以前も同じことをメモしたけど手元の環境がWindows 10に変わっている。

以前のメモで「検索を使わずクリックだけでこの画面に辿り着く方法は分からない。」と書いていたが、次のようにすれば辿り着けることを知った。

  1. スタートボタンを右クリックして「コントロールパネル」をクリックする。
  2. コントロールパネルが開いたら「ユーザー アカウント」をクリックする。(コントロールパネルの「表示方法」が「カテゴリ」になっている場合は更に「ユーザー アカウント」をクリックする必要がある。)
  3. 画面左のメニューの一番下にある「環境変数の変更」をクリックする。

これで環境変数設定画面を開くことができる。ユーザアカウントの設定項目の中にあるとは思いつかなかった。


2017年12月13日(水) [長年日記]

[shell][howto] zshでPATHのような変数の値が重複しないようにする

zshにて環境変数PATHのようにコロン区切りの変数の値が重複しないようにしたい。

$ VAR=aaa:bbb:aaa

としたときに

$ echo $VAR
aaa:bbb

と振る舞って欲しいということ。 以前は「いい方法は見当たらなかった」と書いているがいい方法はある。

設定方法

組み込みコマンドのtypesetを使って

$ typeset -TU VAR var

とする。「var」の部分はほかの変数と同名にならなければ何でもよい。

-Tオプションで変数VARを配列変数varと関連づけ、-Uで重複除去の属性をセットしている。-Tは余計な設定に感じるが、これが無いと動作しない(少なくとも手元のzsh 4.3.11では)。

動作例

$ VAR=aaa:bbb:aaa
$ echo $VAR
aaa:bbb:aaa

$ typeset -TU VAR var
$ echo $VAR
aaa:bbb

$ VAR=ccc:ddd:ccc:ddd
$ echo $VAR
ccc:ddd

参考