( erlydtl ページerl -eval
で説明されているように、erlydtl テンプレートをコンパイルするために)経由で呼び出したい単純な Erlang コマンドがあります。
シェルからインタラクティブに実行すると、すべてが正常に機能し、コマンドはすぐに終了します。
erl -pa ebin deps\erlydtl\ebin Eshell V5.9.3.1 (abort with ^G)
1> erlydtl:compile('templates/tictactoe.dtl',tictactoe_dtl,[{out_dir,'ebin'}]).
ok
しかし、私がそれをやろうとするとerl -eval
(.batファイルからこれを実行したい):
erl -pa ebin deps\erlydtl\ebin -noshell -eval erlydtl:compile('templates/tictactoe.dtl',tictactoe_dtl,[{out_dir,'ebin'}])
その後、コマンドは機能しますが (テンプレートがコンパイルされます)、コマンドは終了せず、ctrl+c を使用して手動でシェル プロセスを強制終了する必要があります (私は Windows で作業しています)。
コマンドでテンプレートをコンパイルして終了するだけです。何が問題なのですか?
アップデート:
1 つの解決策は、コマンドの最後に exit() 呼び出しを追加することですが、最終的には次のようになります。
erl -pa ebin deps\erlydtl\ebin -noshell -eval erlydtl:compile('templates/tictactoe.dtl',tictactoe_dtl,[{out_dir,'ebin'}]),exit(success).
{"init terminating in do_boot",success}
Crash dump was written to: erl_crash.dump
init terminating in do_boot (success)
エラーメッセージは非常にイライラするので、私はまだこの解決策が好きではありません.