Rozważmy następujący kod:shebang wskazując na skrypcie (także mając shebang) są skutecznie ignorowane
#!/usr/bin/env python
import sys
print "Hello! I've got %r as input." % sys.stdin.read()
To chmod +x
skrypt ed w /usr/local/bin/my_interpreter
. I tak:
#!/usr/local/bin/my_interpreter
This is intended to be passed "as is" to python script.
Czy chmod +x
skrypt ed, że stara się z niego skorzystać. Gdybym echo something | /usr/local/bin/my_interpreter
, to działa dobrze, ale gdy próbuję wykonać skrypt powyżej, nie jest on z
/Users/modchan/test_interpreter/foo.bar: line 3: This: command not found
Wydaje się, że jest cicho foo.bar
przekierowany do bash zamiast mojego skryptu. Co ja robię źle? Jak to działa?
Porównaj z http://unix.stackexchange.com/a/20895 – moodywoody
@moodywoody, pytania imho to nie to samo, ale ten, który łączysz, jest dość pouczający. – toriningen
Nie chciałem powiedzieć, że pytanie jest duplikatem - tylko, że drugi wątek ma charakter informacyjny. – moodywoody