5

MIT-scheme(GNU/Linuxで実行されているMIT/GNUスキーム、リリース7.7.90。+||マイクロコード15.1||ランタイム15.7)を使用してschemeプログラムを実行しようとしていますが、コマンドライン引数にアクセスしたいと思います。

ドキュメントを調べましたが、具体的なものは見つかりませんでした。コマンドラインを試しましたが、エラーメッセージが表示されます。

;Unbound variable: command-line

コマンドラインを使用するためにライブラリをロードする必要がありますか、それとも他の関数がありますか?

4

1 に答える 1

4

私はなんとか次の解決策を見つけることができました。

init.scm次の定義でファイルを作成しました。

(define command-line-args '())

(define parse-argument-list
  (lambda (arg-list)
    (set! command-line-args
      (if (null? arg-list)
          (list)
          (cdr arg-list)))))

(set-command-line-parser! "args" parse-argument-list)

このように、コマンドラインオプション--argsが見つかると、関数 parse-argument-listが呼び出されます。

このファイルをmit-schemeインタプリタにロードinit.comし、プロシージャを使用してワールドイメージ()を保存しましたdisk.save

次に、メインのSchemeスクリプトを呼び出すシェルスクリプト(bash)を次のように記述しました。

mit-scheme --band "init.com" --interactive --batch-mode --args $* < myscript.scm

最後に、メインスクリプトで、変数を介してコマンドライン引数にアクセスできます

command-line-args

これがこれを行うための標準/正しい方法であるかどうかはわかりませんが、少なくとも機能します。

于 2012-08-15T20:52:52.623 に答える