コマンドの引数をシェルプログラムに取り込む方法

特別な変数 argv

シェルのプログラムの中に、実行する時のオプションや、ファイル名などを 取り込むには

$argv
引数のはいった配列
$#argv
引数の個数

という特別な変数を使用する。
たとえば、test.shというシェルのプログラムがあったとして

# test.sh -o tmp1 file1

と実行した時に

  -o tmp1 file1

という、test.shの後ろについている、オプションやファイル名などを test.shの中で使用するには

#!/bin/csh -f
set i = 1
while($i <= $#argv)
	switch($argv[$i])
	case -o :
		@ i ++
		set option = $argv[$i]
	breaksw
	default :
		set filename = $argv[$i]
	breaksw
	endsw
	@ i ++
end
以下プログラムが続く
	.
	.

というプログラムでtmp1がoption、file1がfilename という名前の変数に代入できる。 このプログラムの中で、わざわざwhileやswitchなどを使用しているのは、もし -o tmp1が省略されていても、ちゃんとfilenameが代入できるようにするためである。

参考


Home | Contents
Mail