14.10. Using Scala as a Scripting Language
Problem
You want to use Scala as a scripting language on Unix systems, replacing other scripts you’ve written in a Unix shell (Bourne Shell, Bash), Perl, PHP, Ruby, etc.
Solution
Save your Scala code to a text file, making sure the first three
lines of the script contain the lines shown, which will execute the
script using the scala
interpreter:
#!/
bin
/
sh
exec
scala
"$0"
"$@"
!
#
println
(
"Hello, world"
)
To test this, save the code to a file named hello.sh, make it executable, and then run it:
$chmod +x hello.sh
$./hello.sh
Hello, world
As detailed in the next recipe, command-line parameters to the
script can be accessed via an args
array, which is implicitly made available to you:
#!/
bin
/
sh
exec
scala
"$0"
"$@"
!
#
args
.
foreach
(
println
)
Discussion
Regarding the first three lines of a shell script:
The
#!
in the first line is the usual way to start a Unix shell script. It invokes a Unix Bourne shell.The
exec
command is a shell built-in.$0
expands to the name of the shell script, and$@
expands to the positional parameters.The
!#
characters as the third line of the script is how the header section is closed.
A great thing about using Scala in your scripts is that you can use all of its advanced features, such as the ability to create and use classes in your scripts:
#!/
bin
/
sh
exec
scala
"$0"
"$@"
!
#
class
Person
(
var
firstName
:
String
,
var
lastName
:
String
)
{
override
def
toString
=
firstName
+
" "
+
lastName
}
println
(
new
Person
(
"Nacho"
,
"Libre"
))
Using ...
Get Scala Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.