Schemeソースファイル名を引数に与えて、シェルからgoshコマンドを起動するとそのソースファイルを読み込んでGaucheが起動できます。
例:
$ gosh Schemeソースファイル名
例えばhello.scmというファイルに次の式を書いておきます。
(print "Hello, Gauche!")
シェルからhello.scmをgoshコマンドの引数に与えてGauche処理系に読み込ませるとファイルに書かれた式が評価されます。
例:
$ cat hello.scm ;; hello.scmの内容を印字
(print "Hello, Gauche!")
$ gosh hello.scm ;; hello.scmをGaucheに読み込ませ評価させる
Hello, Gauche!
goshコマンドの引数にスクリプトファイル名を与えるのではなくスクリプトファイルを直接実行する
GaucheではなくUNIXの仕様として、スクリプトファイルの最初の行に次の記述をしてそのまま起動することができます。
#!/usr/local/bin/gosh
#!記号に続いてgoshコマンドの絶対パスを書きます。goshコマンドの絶対パスはGaucheのインストール方法によって異なります。
スクリプトファイルを実行するには実行パーミッションを与える必要があります。
例えば、次の内容をファイル名helloで保存して実行パーミッションを与えてみます。
#!/usr/local/bin/gosh
(print "Hello, Gauche!")
実行パーミッションを与えるにはchmodコマンドを使います。
例:
$ chmod 0755 hello
実行パーミッションを与えたので、helloスクリプトファイルはそのまま実行できます。
$ ./hello
Hello, Gauche!
最初の行は次の書式で書くこともできます。
#!/usr/bin/env gosh
この書き方をするにはenvコマンドの絶対パスを知っている必要があります。この書き方をしないなら前の例に示した通りgoshコマンドの絶対パスを知っている必要があります。
より実用的なスクリプトを書くには?
#!/usr/local/bin/gosh
(print "Hello, Gauche!")
今まで例にあげたこんなスクリプトでもとりあえず動作しますが、より実用的なスクリプトを書くにはmain手続きを書くのが一般的です。
例:
#!/usr/local/bin/gosh
(define (main args)
(print "Hello, Gauche!")
0
)
main手続きについては「コマンドライン引数の値を得る」で説明します。
by えんどうやすゆき
Trackback URL: http://karetta.jp/trackback/book/011299/011309 Trackbacks: |