Necesito imprimir el valor de una configuración de Django mientras estoy en un shell Bash.
Básicamente, el comando que me gustaría ejecutar es python -c 'from django.conf import settings; print settings.MEDIA_ROOT'
. Sin DJANGO_SETTINGS_MODULE
embargo, necesito estar en un cierto camino y pasarlo , así que pensé en envolver todo dentro de una función bash que podría llamar en su lugar,pyt -c [...]
Lo he usado con $@
éxito en el pasado en situaciones similares, así que esperaba que también ayudara aquí. Pero no funciona ya que lo tengo configurado en este momento.
function pyt {
cd $PROJECT_ROOT # set elsewhere, parent dir of my_site
DJANGO_SETTINGS_MODULE=my_site.settings python $@
cd $OLDPWD
}
Si escribo pyt -c "print 'foo'"
para probarlo, "foo" no se imprime. Una línea en blanco es. python -c "print 'foo'"
lo imprime correctamente, por lo que tiene algo que ver con mi función aquí.
Si pongo echo $@
dentro de la función, todos los parámetros se imprimen bien. El intérprete de Python tampoco se inicia (lo es si solo escribo pyt
), por lo que el parámetro -c parece tener algún efecto, nada se imprime.
¿Qué me estoy perdiendo?
fuente