using jshell in executable UNIX scripts
Peter Levart
peter.levart at gmail.com
Mon Oct 10 13:55:22 UTC 2016
Hi,
"jshell" command is a very nice interactive Java shell, but it could
also be used for scripting. An executable script in any major UNIX OS is
a textual file with executable permissions that starts with the
following two characters: #!
The rest of the 1st line is the path to the interpreter executable and
any arguments passed to it. The last argument passed to the interpreter
is the path to the executable script. In case of jshell, one would want
such script to be written like:
#!/home/peter/Apps64/jdk9/bin/jshell
System.out.println("Hello World!");
/exit
The problem is that jshell tries to parse the 1st line using jshell
syntax and the result of running above executable script is:
| Error:
| illegal character: '#'
| #!/home/peter/Apps64/jdk9/bin/jshell
| ^
| Error:
| illegal start of expression
| #!/home/peter/Apps64/jdk9/bin/jshell
| ^
Hello World!
The script is actually executed, but the syntax error encountered in the
1st line is printed too.
Would it be possible for jshell to skip 1st line if it starts with
characters #! like other shells do?
Regards, Peter
More information about the kulla-dev
mailing list