fishのおもしろいなと思ったところのひとつは環境変数PATHが配列になっているところです
今は関係はないけどzshも$pathでアクセスする配列である。
環境変数PATHの中身は以下のものとします。
$ printenv PATH
PATH=/usr/local/bin:/usr/bin/:/bin
$PATHをechoしてみよう。
$ echo $PATH
/usr/local/bin /usr/bin/ /bin
コロンがなくなっていますね。
配列になっているので添字でアクセスできます。
番号は1からです。
$ echo $PATH[1]
/usr/local/bin
$ echo $PATH[2]
/usr/bin
$ echo $PATH[3]
/bin
$ echo $PATH[-1]
/bin
負の数も使えます。
ところでぱPATH以外の配列を環境変数にすると、どうなるのでしょうか。
環境変数にするにはsetの-x
オプションを使うみたいです。--export
でも可能です。
$ set -x hoge aaa bbb ccc
$ echo $hoge
aaa bbb ccc
$ printenv hoge
aaa:bbb:ccc
コロン区切りになることがわかりました。
折角配列なのでループを回しておきましょう。
$ for i in $hoge
echo $i
end
aaa
bbb
ccc
まとめ
fishでは環境変数PATHは配列になっています。
配列を環境変数にするとプロセスからはコロン区切りで結合されている状態になるようです。