7
當我意外地使用perl運行bash腳本並且它工作時,我的思緒被炸燬了。進一步的實驗,似乎讀的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
嗯... WUT?
爲了確保我沒有瘋,我試圖與其他解釋這樣做的,證實這只是一個Perl主義:
$ 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
是這有記錄嗎?這是一件新事物嗎? ...爲什麼?
確實是「瑞士軍鏈鋸」。