La mia mente è saltata quando ho eseguito accidentalmente uno script di bash usando perl e ... ha funzionato. Sperimentare inoltre, sembra perl legge la baracca di uno script e invia all'interprete corretto:Perl invia ad altri interpreti in base alla linea shebang?
$ cat /tmp/ohhai.sh
#!/bin/bash
echo ohhai bash
$ perl /tmp/ohhai.sh
ohhai bash
$ cat /tmp/ohhai.py
#!/usr/bin/python2
print 'ohhai python'
$ perl /tmp/ohhai.py
ohhai python
$ cat /tmp/ohhai.groovy
#!/usr/bin/groovy
println 'ohhai groovy'
$ perl /tmp/ohhai.groovy
ohhai groovy
um ... wut?
per assicurarsi che io non sono pazzo, ho provato a fare questo con altri interpreti e confermato questo è solo un perl-ismo:
$ python /tmp/ohhai.sh
File "/tmp/ohhai.sh", line 2
echo ohhai bash
^
SyntaxError: invalid syntax
$ ruby /tmp/ohhai.sh
ruby: no Ruby script found in input (LoadError)
$ bash /tmp/ohhai.py
/tmp/ohhai.py: line 2: print: command not found
Is questo è documentato da qualche parte? È una cosa nuova/vecchia cosa? ... Perché?
"motosega Swiss-Army".