我正在尝试使用 MIT 方案(在 GNU/Linux 下运行的 MIT/GNU 方案,版本 7.7.90.+ || 微代码 15.1 || 运行时 15.7)运行方案程序,并且我想访问命令行参数。
我查看了文档,但没有找到任何具体的内容。我已经尝试过命令行,但我收到一条错误消息:
;Unbound variable: command-line
我是否必须加载一些库才能使用命令行,或者是否有其他功能?
我正在尝试使用 MIT 方案(在 GNU/Linux 下运行的 MIT/GNU 方案,版本 7.7.90.+ || 微代码 15.1 || 运行时 15.7)运行方案程序,并且我想访问命令行参数。
我查看了文档,但没有找到任何具体的内容。我已经尝试过命令行,但我收到一条错误消息:
;Unbound variable: command-line
我是否必须加载一些库才能使用命令行,或者是否有其他功能?
我设法找到了以下解决方案。
我创建了一个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
然后我编写了一个 shell 脚本 (bash),它调用我的主 Scheme 脚本,如下所示:
mit-scheme --band "init.com" --interactive --batch-mode --args $* < myscript.scm
最后,在我的主脚本中,我可以通过变量访问命令行参数
command-line-args
我不确定这是否是标准/正确的方法,但至少它有效。