2013-09-10 8 views
24

、私はだから私は先に行って、私は以下のコンテンツその後コマンドラインからのGroovyスクリプトを実行している

#!/usr/local/bin/groovy 
println "hello world" 

helloworld.groovyを作成し、以下の出力

/usr/local/bin/groovy 

を得ましたchmod +x helloworld.groovy./hellworld.groovyでファイルを実行しようとしましたが、悲しいことにこのエラーが発生しました./helloworld.groovy: line 2: print: command not found

エラーを取り除いて

#!/usr/bin/env groovy 
println "hello world" 

に変更すると、最初の方法でエラーが発生するのはなぜですか?

+0

の通訳スクリプトのセクションを参照してくださいhttp://stackoverflow.com/questions/306139/how-do-i-include-jars-in- a groovy-script/8945888#8945888 – chim

+0

また、同じ質問に... http://stackoverflow.com/a/9692013/673282 – chim

答えて

24

あなたは、このようなスクリプトを実行する必要があります。

groovy helloworld.groovy 
+4

またはちょうど 'groovy helloworld'。 :) – dmahapatro

+6

groovyもスクリプト言語であるため、perlやpythonのように実行する必要がありますか?ですから、 '。/ helloworld.groovy'が' println'に関するエラーを返すのは疑問です。 '#!/ usr/local/bin/groovy'と'#!/ usr/bin/env groovy'の違いは何ですか? – jjennifer

+10

'#!/ usr/local/bin/groovy'はgroovyがインストールされている正確な場所です。そのため、スクリプトはgroovyが別の場所にインストールされている別のシステムに移植できません。これは '#!/ usr/bin/env' groovyが" groovy "という引数でプログラム"/usr/bin/env "を呼び出し、/ usr/bin/envがあなたのPATH変数を検索して" groovy "を呼び出すのです。
ところで、より良いシバンは '#!/usr/bin/env'を実行します。間のスペースに注意してください!および/または。そのようにして、すべての "スクリプト"の最初の4バイトは同じです(ファイルの "マジックナンバー"にするのは古い学校です)。 –

関連する問題