2010年11月14日日曜日

今更聞けないUNIXコマンド (2) シェル変数について

色々と環境を構築するときにはPATHであったり, なんでもシェル変数がつきまといます.
てわけで簡単な操作をまとめておきます.

代入〜表示〜削除まで

$ age=1
$ echo $age
1
$ unset age
$ echo $age

こんなかんじで, スペースなしで変数へ代入する. echo + $変数名で表示.
unset 変数名で削除を行う. なお, 代入の際文字列なら, "文字列"とする.

組み込みシェル変数

と, さっきのは普通のシェルのユーザが定義する変数でした.
特定の変数は現在の設定などのために使用されるそうです.
そういった組み込みシェル変数を見るには

$ set
Apple_PubSub_Socket_Render=/tmp/launch-E3SrVT/Render
BASH=/bin/bash
BASH_ARGC=()
BASH_ARGV=()
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="3" [1]="2" [2]="48" [3]="1" [4]="release" [5]="x86_64-apple-darwin10.0")
BASH_VERSION='3.2.48(1)-release'
CLICOLOR=1
COLUMNS=100
COMMAND_MODE=unix2003
〜省略

といった具合にsetで見れます.

例えば
$ pwd
/Users/Shared
$ echo $PWD
/Users/Shared
とか.



環境変数

さっきまでのは普通のシェル変数でして, そのシェル内でのみ有効なのですが, 環境変数という
他のプログラムまで影響を及ぼす特別な変数があります. 例えばさっき出てきたPATHやLANGなどがそれです.

環境変数の定義に仕方は

$ export ***
です. 削除は例によってunset.

例えば,

$ echo $PATH
/opt/local/bin:/opt/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/texbin:/usr/X11/bin:〜
てかんじで中身を見ることができます.

てわけで

$ export PATH=$PATH:/usr/...
てやつは, PATHの中身プラス/usr/...てパスを代入する, という意味があるんですね.
こんな初歩的なことも知らなかったとは切ない.



今ある環境変数一覧は,
$ printenv
MANPATH=/opt/local/share/man:
TERM_PROGRAM=Apple_Terminal
TERM=xterm-color
SHELL=/bin/bash
CLICOLOR=1
TMPDIR=/var/folders/z-/z-li-9WFH48WCuV3k4AIYE+++TI/-Tmp-/
Apple_PubSub_Socket_Render=/tmp/launch-E3SrVT/Render
TERM_PROGRAM_VERSION=273
〜省略
などで見ることができます.

0 件のコメント:

コメントを投稿