可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I am currently looking at using Scala scripts to control the life-cycle of a MySQL database instead of using MS-DOS scripts (I am on Windows XP).
I want to have a configuration script which only holds configuration information, and 1 or more management scripts which use the configuration information to perform various operations such as start, stop, show status, etc .....
Is it possible to write a Scala script which includes/imports/references another Scala script?
I had a look at the -i option of the scala interpreter, but this launches an interactive session which is not what I want.
回答1:
I'd use Process and call the other Scala script just like any other command.
回答2:
According to Scala man, script pre-loading only works for interactive mode.
As a workaround, you can exit the interactive mode after running the script. Here's the code of child.bat
(script that includes another generic one):
::#! @echo off call scala -i genetic.bat %0 goto :eof ::!# def childFunc="child" println(geneticFunc) println(childFunc) exit;
genericFunc
is defined at genetic.bat
The output of child.bat
:
>child.bat Loading genetic.bat... ... geneticFunc: java.lang.String Loading child.bat... ... childFunc: java.lang.String generic child
回答3:
One option would be to have a script which concatenates two files together and then launches it, something like:
@echo off type config.scala > temp.scala type code.scala >> temp.scala scala temp.scala del temp.scala
or similar. Then you keep the two seperate as you wished.