8

このように、メイクファイルからスクリプトを評価して終了したい

mit-scheme --load "fact.scm"

ただし、ファイルを評価した後、終了せず、repl が表示されます。プリミティブを試すと、(exit)y/n の確認を求められます。これを解決することは可能ですか?

4

4 に答える 4

6

コマンドが mit-scheme プロセスの stdin を自動的に閉じるようにするだけです。

echo | mit-scheme --load sample.scm

これをスクリプト関数に拡張できます。これが私の未熟な実装です:

function mschm () {
   IFS=""
   for arg in $@
       do
           echo | mit-scheme --load $arg
       done
}
于 2016-11-29T14:41:37.157 に答える
2

これは機能します。少なくとも 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
 }
于 2021-07-16T15:24:55.727 に答える