Unixコマンド/set の変更点


*&SIZE(15){''set''}; [#b1f0ff23]

**''機能'' [#z50ddb9b]
setコマンドは、シェルの内部コマンドで、変数を表示、設定します。~
引数なしで実行すると、現在設定されているシェル変数とその値の一覧を表示します。~
bsh(その系列シェル)では「変数=値」の形式で、csh(その系列シェル)では「変数 値」の形式で表示します。~

**''構文'' [#fb133adc]
set~
set 変数[=値]~
set 変数=(リスト)

**''コマンド例'' [#bb6664f2]
▼シェル変数を表示する。
 $ set
 _       ls
 
 addsuffix
 argv    ()
 autolist
 color
 cwd     /home/matsui
 dirstack        /home/matsui
 dspmbyte        euc
 echo_style      bsd
 edit
 filec
 gid     1001
 group   Admin
 history 100
 home    /home/matsui
 killring        30
 loginsh
 mail    /var/mail/matsui
 matchbeep       never
 owd
 path     (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin
 /usr/X11R6/bin /home/matsui/bin)
 prompt  %n@vaio$
 prompt2 %R?
 prompt3 CORRECT>%R (y|n|e|a)?
 savehist        100
 shell   /bin/tcsh
 shlvl   1
 status  0
 tcsh    6.12.00
 term    vt100
 tty     ttyp0
 uid     1001
 user    matsui
 version tcsh 6.12.00 (Astron) 2002-07-23 (i386-intel-FreeBSD) options 8b,nls,dl,
 al,kan,sm,rh,color,dspm,filec
▼シェル変数を定義する(cshの場合)
 $ set |grep filec
 $ set filec                   変数filecを定義する。
 $ set |grep filec
 filec
 $ set savehist=256            変数savehistを定義し、値を256に設定する。
 $ set |grep savehist
 savehist   256                変数savehistの値が256に設定されている。
▼シェル変数に値を追加する(cshの場合)
 $ set path=($path /usr/local/libexec)           pathのリストに値を追加する。
 $ set |grep path
 path        (/home/genesis/bin /bin /sbin /usr/bin /usr/sbin /usr/local/sbin /usr/local/bin /usr/local/libexec)
                                                 設定した値が追加されている
~
▼シェル変数と環境変数~
シェル変数、環境変数どちらも、あらかじめある変数に値を設定しておき、その変数の設定を~
もとに動作環境を変更する、といった使い方ができます。~
大きく異なるのはその有効範囲です。~
環境変数は、シェルから実行したプロセスにもその環境変数の設定が引き継がれます。~
これに対しシェル関数は、あくまでシェル自身の動作環境の変更のためだけに用いられます。

**位置パラメータをセットする。 [#xd220fc6]
setコマンドを使うと、いつでも位置パラメータを再設定できます。~
たとえば、コマンドを実行してその結果を位置パラメータにセットしたりできます。

■例:dateコマンドの実行結果を位置パラメータに渡し、for文で表示する。
 $ set `date`
 $ for i in $@
 > do
 > echo $i
 > done
 2006年
 8月
 29日
 火曜日
 19:07:51
 JST