Przysięgam, widziałem to już wcześniej, ale nie mogę go teraz znaleźć. Czy to możliwe, aby mieć skrypt powłoki uruchomić Pythona interpeter „połowy strumienia”, to znaczy:Możliwe mieszanie skryptów powłoki i python?
#!/bin/bash
#shell stuff..
set +e
VAR=aabb
for i in a b c; do
echo $i
done
# same file!
#!/usr/bin/env python
# python would be given this fd which has been seek'd to this point
import sys
print ("xyzzy")
sys.exit(0)
+1: Wykonywanie jest lepsze niż po prostu wywołanie Pythona. W tym kontekście shebang jest niepotrzebny i będzie traktowany jedynie jako komentarz. –
@WilliamPursell: Wiesz, nawet nie zauważyłem shebangu. . . nie tylko nie jest to konieczne, ale tak naprawdę wprowadza w błąd, ponieważ nie wywoła ono 'env'. Przypuszczam, że komendą może być 'exec env python << END_OF_PYTHON', ale prawdopodobnie lepiej po prostu usunąć shebang. – ruakh