我想输入类似于'scheme‘的内容,让它解释这个文件,然后带我回到我的file.scm,而不是把它加载到REPL中。
编辑:我尝试了scheme < test.scm,它仍然使用REPL,唯一的区别是scheme在流结束时退出。
发布于 2009-05-24 15:20:23
scheme < file.scm应该可以工作(只要您不指定--interactive,并且标准输入不是终端,scheme就可以非交互方式工作)。
发布于 2017-12-09 10:54:37
要使用MIT scheme运行方案程序,请执行以下操作:
scheme --quiet < program.scm--quiet选项确保您的程序的输出是唯一显示的内容(即,根据您的要求,您将看不到REPL )。
警告:如果您的程序使用输入过程(例如read、read-char、read-line等)提示用户输入,则此功能将不起作用。这是因为shell输入重定向(<) (参见:relevant question)。不幸的是,当使用输入过程时,目前还没有从命令行执行MIT Scheme脚本的适当方法。最好的选择可能是mit-scheme --quiet --load 'myscript',但当脚本结束时,您必须手动退出MIT Scheme。相关邮件列表线程:[MIT-Scheme-devel] How to run a script and exit?
编辑:由于您可能会将<错误地键入为>,从而导致源代码被覆盖,因此我建议将上述命令封装在shell脚本或shell函数中。例如:
runscheme () {
scheme --quiet < "$1"
}然后,您就可以运行runscheme program.scm,而不用担心源代码会被覆盖。(特别感谢Paul Rooney让我注意到这个潜在的错误)。
参考文献
scheme --help
--批处理模式,--静默,--静默
取消版本和版权的启动报告以及验证。
这个命令行选项似乎在list of command line options in the documentation中被错误地省略了,但我认为这是一个合法的命令行选项,因为scheme --help显示了它,并且在参考手册的其他部分(例如here)中使用了--batch-mode。
发布于 2011-04-13 17:21:24
我想你想要的是SCM。您可以像这样执行.scm脚本:
$ scm -f foo.scm arg1 arg2 arg3
有关更多详细信息,请参阅http://people.csail.mit.edu/jaffer/scm_3.html#SEC28。
供应链管理主页:http://people.csail.mit.edu/jaffer/SCM
https://stackoverflow.com/questions/903968
复制相似问题