このように、メイクファイルからスクリプトを評価して終了したい
mit-scheme --load "fact.scm"
ただし、ファイルを評価した後、終了せず、repl が表示されます。プリミティブを試すと、(exit)
y/n の確認を求められます。これを解決することは可能ですか?
このように、メイクファイルからスクリプトを評価して終了したい
mit-scheme --load "fact.scm"
ただし、ファイルを評価した後、終了せず、repl が表示されます。プリミティブを試すと、(exit)
y/n の確認を求められます。これを解決することは可能ですか?
コマンドが mit-scheme プロセスの stdin を自動的に閉じるようにするだけです。
echo | mit-scheme --load sample.scm
これをスクリプト関数に拡張できます。これが私の未熟な実装です:
function mschm () {
IFS=""
for arg in $@
do
echo | mit-scheme --load $arg
done
}
これは機能します。少なくとも 11.2 では、次のような確認プロンプトが表示されません(exit)
。
scheme --quiet --load filename --eval '(exit)'
疑似 Python 呼び出しエクスペリエンスを提供するこの便利でダンディなシェル関数があります。引数がない場合、REPL にドロップされますが、引数がある場合、最初の引数はスクリプト名として取得され、後続の引数は に変わります(command-line-arguments)
。これが定義です。書かれているように、それはbashまたはzshで機能し、を変更することによりscm()
(function scm
またはを削除しますが、シェルで定義されlocal
たvarをずさんに残します)、kshでも機能します。$prog
scm() {
if (( $# )); then
local prog=$1
shift
scheme --quiet --load "$prog" --eval '(exit)' -- "$@"
else
scheme
fi
}