このページの本文へ

コマンドを使うために、まずはシェルのbashを使いこなせるようになろうではないか。

覚えておきたい必須コマンド30―その5・シェルを使おう

2001年06月27日 06時54分更新

文● 山岸典将

  • この記事をはてなブックマークに追加
  • 本文印刷

変数は、シェルやその他のプログラムが実行時に利用するもので、ふつうはユーザーの名前や、ターミナルの設定、言語環境の設定、そして個別のプログラムのための設定など、さまざまな情報が数値や文字列としてあらかじめ設定されている。また、変数にはシェル変数と環境変数の2つがある。

まず、シェルから“set”とタイプしてみよう。そのシェルで設定されている変数が大量に表示されるはずだ。

シェル変数の定義方法は、単に変数とその値を“=”で結べばよい。

$ FOO=txt

これで、変数FOOに“txt”が設定される。そして、その変数は、変数名の前に“$”をつけることで利用できる。引数に指定された文字列を出力するechoコマンドで試してみよう。

$ echo $FOO
txt
$ ls
aaa.txt  bbb.tif  ccc.txt  ddd.tif
$ ls *$FOO 
aaa.txt  ccc.txt

最後のlsコマンドでは、$FOOが“txt”に展開され、ls *txtというコマンドになったのがわかるだろう。

最低限必要な変数に関してはシステムに最初から設定されている。シェルを使い始めたばかりのうちはあまり変数を使うこともないだろうが、覚えておいたほうがよい変数もある。

そのひとつが、PATH変数だ。このPATH変数は、入力されたコマンドをシェルが探しに行く場所(パス)を設定している。つまり、ここで設定されていない場所にあるコマンドを起動するには、コマンドがある場所も指定しなくてはならないということだ。存在するはずのコマンドを入力したのに、「command not found」となってしまう場合には、そのコマンドが存在する場所がPATH変数に設定されていない可能性がある。

また、このPATHに関しては、現在いるディレクトリ(カレントディレクトリ)は含めないのが一般的なので注意しよう。特にMS-DOSをよく知っているユーザーが引っ掛かりやすい。カレントディレクトリにあるコマンドを実行するには、コマンド名の前にカレントディレクトリ意味する“./”をつける。

$ ./command

なお、基本的にシェル変数の設定は、そのシェルのみで有効となり、別のシェルには影響しない。ということは、X上で複数のターミナルを開いていた場合、あるターミナルで変数を変更しても、別のターミナルではその変数は変更されない。そのうえ、そのシェルから起動したプログラムも、シェル変数を参照することはできない。

しかし実際には、変数を利用してさまざなプログラムの設定を行いたい場合が多い(日本語環境の設定も変数で行っている)。そこで、シェル変数をそのシェルから起動したプログラムに引き継がせるための、“export”というコマンドが存在する。

$ export FOO

exportされたシェル変数は、環境変数となり、そこから起動された(シェルを含む)プログラムに引き継がれることになる(図3)。実際にこのexportがどのように使われるかについては、次の「bashの初期設定」で解説しよう。

図3
図3 変数とexport

週刊アスキー最新号

編集部のお勧め

ASCII倶楽部

ASCII.jp Focus

MITテクノロジーレビュー

  • 角川アスキー総合研究所
  • アスキーカード
ピックアップ

デジタル用語辞典

ASCII.jp RSS2.0 配信中