2014-10-24 5 views
1

Groovysh를 초기화 한 다음 정기적 인 Groovysh 대화식 세션으로 가져갈 방법을 찾고 있습니다. 즉 :Groovysh init 스크립트

  • 실행되는 일부 스크립트 (예를 들어, 수입 또는 다른 것) 이전 스크립트는 세션의 시작부터 수동으로 입력 된 것처럼
  • 가 groovysh에서 실행을 계속합니다.

이 봤어요 :

하지만 응용 프로그램 별이 아닌 사용자 별 수준에서이 작업을 수행 할 수 있도록하고 싶습니다. 나는. 다른 응용 프로그램은 일반적으로 동일한 내용을 가져 오지 않습니다 (그렇지 않으면 같은 방식으로 초기화합니다). 그게 가능하니? 이 게시물 당

답변

0

:

가이 기능을 지원하지 않습니다 그루비 < = 2.3 모양과이 구문을 사용하여 그루비 2.4에 존재 될 것 :

groovysh -e foo.groovy 
+0

실제로는 'groovysh -e'... 여기에 코드를 넣으십시오. '', 예를 들어'groovysh -e '2 + 2''. 불행히도'groovysh -e 'load "foo.groovy"'가 작동하지 않습니다 : ( – qlown

+0

'groovysh -e ': load foo.groovy'' works! 추가 답변 ... – qlown

0

load 키워드를 사용하면 다음과 같이 작동합니다.

$ cat test.groovy 
myStr = "hello World!" 
$ 
$ groovysh 
groovy:000> load test.groovy 
===> hello World! 
groovy:000> println myStr 
hello World! 
===> null 
groovy:000> 
1

Groovy 2.4부터 groovysh -e '... your code here ...'을 사용할 수 있습니다.

예 :

$ groovysh -e '2+2' 
Groovy Shell (2.4.7, JVM: 1.8.0_131) 
Type ':help' or ':h' for help. 
---------------------------------------------------------- 
groovy:000> 2+2 
===> 4 

스크립트를 미리로드하려면, 그래서 같은 :load를 사용

$ cat preamble.groovy 
def hello(x) { 
    "Hello ${x}" 
} 
println hello("world") 

$ groovysh -e ':load preamble.groovy' 
Groovy Shell (2.4.7, JVM: 1.8.0_131) 
Type ':help' or ':h' for help. 
---------------------------------------------------------- 
groovy:000> :load preamble.groovy 
===> true 
Hello world 
===> null 
groovy:000> hello('stackoverflow') 
===> Hello stackoverflow 

(I 수동으로 입력 한 마지막 예에서 마지막 줄에, 나는에 정의 된 기능 hello를 사용할 수 있습니다 preamble)