2012-07-23 35 views
3

我試圖運行一個使用MIT方案的方案程序(在GNU/Linux下運行的MIT/GNU方案,版本7.7.90 + ||微代碼15.1 ||運行時15.7)我想訪問命令行參數。讀取MIT方案中的命令行參數

我看過文檔,但沒有找到具體的東西。 我曾嘗試的命令行,但我得到一個錯誤信息:

;Unbound variable: command-line 

我是否必須要使用命令行來加載某些庫,或者是有一些其他的功能呢?

回答

3

我已經設法找到以下解決方案。

我創建了一個文件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解釋並保存使用過程disk.save世界圖像 (init.com)。

我已經然後寫調用我的主要方案如下腳本一個shell腳本(bash)的:

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

最後,在我的主要腳本中,我可以通過可變

command-line-args 
訪問命令行參數

我不確定這是否是標準/正確的方式來做到這一點,但至少它的工作原理。

+0

我已經與麻省理工學院的計劃開發人員覈實,該解決方案是oK。 – Giorgio 2012-08-27 17:19:38