シェルスクリプトの変数

変数の使い方

シェルで変数に何かを代入するには、

set 変数名 = 値

で行なう。
変数名には英数字が使用できる。(頭文字は英字であること)
代入される値は数値、文字列の区別はない。(実際は、全て文字列として代入される)
C言語のように変数宣言(int x; など)の必要もない。
変数はコマンドラインからでも使用できる。

そして、代入された値を参照する時には、

$変数名

とする。

(例)

# set x = 123
# set y = 55.32
# set str = "this is strings."
# echo $x
123
# echo $y
55.32
# echo $str
this is strings.

特別な変数

シェルスクリプトを実行する時に、引数をとってくる方法として、 C言語における、main(int argc,char *argv[]) の argc, argv のようなものが存在する。

$argv
C言語のargv
$#argv
C言語のargc

以前の docc.sh をこの変数を使って改良してみよう。

#!/bin/csh -f
vi $argv[1]
cc $argv[1]
a.out

ここで1行目におまじないをつけること。
すると、以下のようにいちいちdocc.shを書き換えなくてもファイル名を変えて実行できる。

# vi docc.sh          < - 一度上のように書き直す
# csh docc.sh tmp.c   < - 今度はtmp.cをつけて実行
(ここでvi tmp.cが実行される)
(viが終るとすぐにcc tmp.cが実行される)
(cc tmp.cが終るとすぐにa.outが実行される)
# csh docc.sh tmp2.c  <- 今度はtmp2.cをつけて実行
(ここでvi tmp2.cが実行される)
(viが終るとすぐにcc tmp2.cが実行される)
(cc tmp2.cが終るとすぐにa.outが実行される)

じつは、このargvは配列になっていて、 $#argv は配列要素の個数を数えているだけである。

参考


Prev | Next
Home | Contents
abe@injapan.net