2012-05-26 47 views

Respuesta

7

Para una sola secuencia puede usar python -c. Pero para cadenas como la pregunta se refiere, se debe pasar a la entrada estándar:

$ python << EOF 
> import sys 
> print sys.version 
> EOF 
2.7.3 (default, Apr 13 2012, 20:16:59) 
[GCC 4.6.3 20120306 (Red Hat 4.6.3-2)] 
+4

Encontré la respuesta. solo copia, pega esto en la terminal. python -c "import sys; x = 'hola mundo'; imprimir x;" – kasa

+0

Eso es una cadena * a *. Si quieres * cadenas *, entonces debes alimentarlas a stdin. –

0

Python tiene eval. Prueba este script

import sys 

str = sys.argv[1] 
eval(str) 

invocarlo como esto:

$ python3 eval.py 'print(1 + 1)' 
2 
15

Se puede utilizar para obtener -c Python para ejecutar una cadena. Por ejemplo:

python3 -c "print(5)"

Sin embargo, no parece ser una manera de utilizar los caracteres de escape (por ejemplo \n). Por lo tanto, si los necesita, use una tubería de echo -e o printf en su lugar. Por ejemplo:

$ printf "import sys\nprint(sys.path)" | python3

+0

'python3 -c" import sys; print (sys.path) "' es más simple. – mattmc3

+0

@ mattmc3 No puede finalizar un bloque (donde la sangría disminuiría) con un punto y coma. Entonces es más limitado; no puede, por ejemplo, crear una función y luego realmente llamarla, o usar un if-else, o incluso un if seguido de un código incondicional. Pero (cuando sea posible) eso es más simple. – Kevin

Cuestiones relacionadas