Unixコマンド/set
set †
機能 †
setコマンドは、シェルの内部コマンドで、変数を表示、設定します。
引数なしで実行すると、現在設定されているシェル変数とその値の一覧を表示します。
bsh(その系列シェル)では「変数=値」の形式で、csh(その系列シェル)では「変数 値」の形式で表示します。
構文 †
set
set 変数[=値]
set 変数=(リスト)
コマンド例 †
▼シェル変数を表示する。
$ 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) 設定した値が追加されている
▼シェル変数と環境変数
シェル変数、環境変数どちらも、あらかじめある変数に値を設定しておき、その変数の設定を
もとに動作環境を変更する、といった使い方ができます。
大きく異なるのはその有効範囲です。
環境変数は、シェルから実行したプロセスにもその環境変数の設定が引き継がれます。
これに対しシェル関数は、あくまでシェル自身の動作環境の変更のためだけに用いられます。
位置パラメータをセットする。 †
setコマンドを使うと、いつでも位置パラメータを再設定できます。
たとえば、コマンドを実行してその結果を位置パラメータにセットしたりできます。
■例:dateコマンドの実行結果を位置パラメータに渡し、for文で表示する。
$ set `date` $ for i in $@ > do > echo $i > done 2006年 8月 29日 火曜日 19:07:51 JST