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/shexecscala"$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.shHello, 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/shexecscala"$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
execcommand is a shell built-in.$0expands 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/shexecscala"$0""$@"!#classPerson(varfirstName:String,varlastName:String){overridedeftoString=firstName+" "+lastName}println(newPerson("Nacho","Libre"))
Using ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access