Gaucheプログラミング(立読み版) > 第2部: 実用 > Schemeスクリプトを書こう > コマンドライン引数の値を得る


[Prev] [Next] [Up] [Contents][フレーム表示] [フレーム解除

コマンドライン引数の値を得る 応援する 

Schemeソースファイル名を引数に与えて、シェルからgoshコマンドを起動するとそのソースファイルを読み込んでGaucheが起動できます。では、さらにコマンドライン引数を与えてその値をSchemeスクリプトの中で得るにはどうしたら良いでしょうか?

いくつか方法がありますが、main手続きを書くのが最も明解です。

例:

 (define (main args)
  ...
 )

上記の例ではgoshコマンドに与えた引数がリストに変換されてargsという名前で束縛されます。

例えば次のSchemeソースをargtest.scmというファイル名で保存したとします。

(define (main args)
 (print args)
)

引数「0 1 2 3 4」を与えてargtest.scmをGauche処理系に読み込ませると次の通りに評価されます。

 $ gosh argtest.scm 0 1 2 3 4
 (argtest.scm 0 1 2 3 4)

argsの最初の要素はgoshコマンドの最初の引数であるargtest.scmです。以降は空白で区切られたコマンドライン引数が続きます。

mainは特別な手続き

Schemeソースファイルにmain手続きが定義されているとき、Gauche処理系はコマンドライン引数をmain手続きの最初の引数に束縛してmain手続きを評価します。

main手続きが整数の値を返すとき、Gauche処理系は終了ステータスとしてその値をシェルに返します。

例:

 (define (main args)
 ...
  0 ;; 正常終了
 )

これを利用すると、シェルスクリプトの中からSchemeスクリプトを呼び出して終了ステータスを判定することができます。


[Prev] [Next] [Up] [Contents][フレーム表示] [フレーム解除

このサイトについて|ヘルプ|Q&A|個人情報保護|プライバシーポリシー|利用規約|コメント・トラックバック規約|削除規程|広告掲載
Copyright (c) 2005-2007 Time Intermedia Corporation