8

Pythonでは、スクリプトを実行して、そのスクリプトのコンテキストでインタラクティブモードに入ることができます。これにより、グローバル変数と、プログラムの状態を調べないようにするものをいじることができます。

$ python -i hello.py

Coffeescriptでこれを行うことはできますか?私は次のことを試しました:

$ coffee -i hello.coffee

hello.coffeeをロードしません。それはコーヒー-iと同等です

$ cat hello.coffee | coffee -i

REPLでスクリプトを1行ずつ実行しますが、EOFの後でREPLを終了します。

4

3 に答える 3

4

私は最近、Node および CoffeeScript などの関連言語用の高度なインタラクティブ シェルを作成するプロジェクトを開始しました。機能の 1 つは、読み込まれた言語を考慮して、起動時にインタープリターのコンテキストでファイルまたは文字列を読み込むことです。

http://danielgtaylor.github.com/nesh/

例:

# Load a string
nesh -c -e 'hello = (name) -> "Hello, #{name}"'

# Load a file
nesh -c -e hello.coffee

次に、インタープリターで関数にアクセスできますhello。また、bash でエイリアスを作成することをお勧めします。

alias cs='nesh -c'
于 2013-04-04T04:11:35.553 に答える
1

cat foo.coffee - | coffee -i

最初にコードを出力してからstdinを出力するようにcatに指示します。これにより、探しているものが得られます。

于 2013-10-31T19:13:28.003 に答える
0

私もこの問題に直面しています。@int3 が提供するものでは、この問題は解決されません。CoffeeScript はインデント ベースの言語の 1 つだからです。stdin はコードを 1 行ずつ渡しますが、repl はこれを実現できるほどスマートではありません。この質問を投稿したので、CoffeeScriptで 1 つの問題 (機能要求) を作成することをお勧めします

于 2013-03-15T20:08:46.753 に答える