我想在Makefile中执行脚本并退出,就像这样:
mit-scheme --load "fact.scm"
然而,在评估完文件后,它并不会退出,而是出现repl界面;如果尝试使用(exit)
原始操作符,则需要确认[y/n]。是否有可能解决这个问题?
我想在Makefile中执行脚本并退出,就像这样:
mit-scheme --load "fact.scm"
然而,在评估完文件后,它并不会退出,而是出现repl界面;如果尝试使用(exit)
原始操作符,则需要确认[y/n]。是否有可能解决这个问题?
让我们的命令自动关闭mit-scheme进程的标准输入,例如:
echo | mit-scheme --load sample.scm
function mschm () {
IFS=""
for arg in $@
do
echo | mit-scheme --load $arg
done
}
对于Unix系统,mit-scheme通过重定向读取输入文件:
mit-scheme < /usr/cph/foo.in > /usr/cph/foo.out 2>&1 &
(exit)
的确认提示。scheme --quiet --load filename --eval '(exit)'
我有一个很方便的shell函数,可以提供类似Python的调用体验:如果没有参数,则进入REPL(交互式命令行)模式,但如果有参数,则第一个参数将作为脚本名称,随后的所有参数则变成(command-line-arguments)
。以下是该函数定义;按照写法,它可以在bash、ksh或zsh中工作:
function scm {
if (( $# )); then
typeset prog=$1
shift
scheme --quiet --load "$prog" --eval '(exit)' -- "$@"
else
scheme
fi
}
mit-scheme
命令中添加--quiet
参数来抑制默认输出。否则,这是 Charlie Forthmount 的函数的抄袭(尽管它只加载一个文件):run-mit-scheme ()
{
echo | mit-scheme --quiet --load $1;
# Add an extra newline
echo
}