UNIXの操作/UNIXの応用(2)/シェル変数

ユーザは,``シェル変数''と呼ばれる変数を利用することによって,シェルやコマンドの動作を操作できます.シェル変数の設定にはsetコマンドを用います.また,1度設定したシェル変数を無効にするには, unsetコマンドを用います.

%set [変数名] = 設定値<RET>
%unset [変数名]<RET>

%set history = 300 <RET>
%echo $history <RET>
300
%unset history <RET>
%echo $history <RET>
history: Undefined variable.
% _

また,現在設定されているシェル変数の一覧を確認するには,setコマンドを引数なしで実行します.設定した値を参照するには`$変数名'とします.

% set<RET>
addsuffix
argv    ()
cwd     /home/t01000tf/
echo_style      bsd
edit
gid     100
history 100
home    /home/t01000tf
  
% _
シェルにはユーザが設定した変数以外にも,あらかじめ用意されている``定義済みシェル変数''があります.これはシェルの実行環境を規定しています.定義済みシェル変数を変更することによって,ユーザのシェル環境を自由に変えられます.定義済みシェル変数のうちの一部を,表に示します.


表: 代表的な定義済みシェル変数
変数 意味
fignore この変数で参照する文字列を持つファイル名は,シェルの補完機能で補完する候補の対象から外す
history コマンド履歴機能を有効にし,参照される値のコマンドラインを記憶する
ignoreeof 設定すると C-dを押してもログアウトしない
path ファイルシステム中に遍在するコマンドを探すディレクトリを指定する
prompt プロンプトの形式を指定する

次に定義済みシェル変数の変更例を示します.

  • コマンドサーチパスの変更
    path変数では,コマンドサーチパスを変更できます.コマンドサーチパスを設定すると,自分で作ったシェルスクリプトやプログラムを,ディレクトリパスで指定しなくてもファイル名のみで実行できるようになります.

    例えば次のように設定すると,ホームディレクトリの下にある`mydir'ディレクトリにある実行ファイルを,ファイル名だけでコマンドとして呼び出せるようになります.

%helloworld<RET>
helloworld: Command not found.
%~/mydir/test<RET>
Hello world.
%set path = ($path ~/mydir)<RET>
%test <RET>
Hello world.
% _

`$path'を新たに加えたいパスの前に書き忘れるとCNS で標準設定されているパスが上書きされてしまい,通常利用できるコマンドが利用できなくなってしまうので,注意してください.