I need to print the value of a Django setting while in a Bash shell.
Basically, the command I'd like to run is python -c 'from django.conf import settings; print settings.MEDIA_ROOT'
. I need to be in a certain path and pass DJANGO_SETTINGS_MODULE
to it though, so I thought I'd wrap the whole thing inside a bash function that I could call instead, pyt -c [...]
I've used $@
successfully in the past in similar situations, so I was hoping it would help here, too. But it's not working as I've got it set up right now.
function pyt {
cd $PROJECT_ROOT # set elsewhere, parent dir of my_site
DJANGO_SETTINGS_MODULE=my_site.settings python $@
cd $OLDPWD
}
If I type pyt -c "print 'foo'"
to test it, "foo" is not printed. A blank line is. python -c "print 'foo'"
prints it correctly, so it's something to do with my function here.
If I put echo $@
inside the function, all the parameters are printed out just fine. The Python interpreter is not started either (it is if I just type pyt
), so the -c parameter seems to be having some effect—nothing just gets printed out.
What am I missing?