Мой разум был взорван, когда я случайно запустил скрипт bash, используя perl, и он ... работал. Экспериментируя дальше, кажется, Perl читает хижину сценарий, и отправляет к правильному переводчику:Perl отправляет другим переводчикам на основе линии 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
гм ... ВТУ?
Для того, чтобы убедиться, что я не сумасшедший, я пытался делать это с другими переводчиками и подтвердил, что это просто жемчужно-изма:
$ 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
ли это где-то документировано? Это новая вещь/старая вещь? ... Зачем?
«Швейцарская армейская цепная пила».