Puoi usare questa sintassi della shell (si chiama here document nella letteratura Unix):
#!/bin/sh
echo this is a shell script
python <<@@
print 'hello from Python!'
@@
Il marcatore dopo l'operatore '<<' può essere identificato da un identificatore arbitrario, le persone spesso usano qualcosa come EOF (fine del file) o EOD (fine del documento). Se il marcatore inizia una riga, la shell lo interpreta come fine dell'input per il programma.
Se il tuo python
la sceneggiatura è molto breve. Puoi passarlo come stringa a python
usando il -c
opzione:
python -c 'import sys; print "xyzzy"; sys.exit(0)'
Oppure
python -c '
import sys
print("xyzzy")
sys.exit(0)
'
Potresti scrivere
exec python <<END_OF_PYTHON
import sys
print ("xyzzy")
sys.exit(0)
END_OF_PYTHON
per sostituire il processo Bash con Python e passare il programma specificato a Python sul suo input standard. (Il exec
sostituisce il processo Bash. Il <<END_OF_PYTHON
fa in modo che lo standard input contenga tutto fino a END_OF_PYTHON
.)