Мне нужно напечатать значение параметра Django в оболочке Bash.
По сути, я хотел бы запустить команду python -c 'from django.conf import settings; print settings.MEDIA_ROOT' . Я должен быть на определенном пути и передать ему DJANGO_SETTINGS_MODULE , поэтому я решил обернуть все это в функцию bash, которую я мог бы вызвать вместо этого, pyt -c [...]
В прошлом я успешно использовал $@ в подобных ситуациях, поэтому я надеялся, что и здесь это поможет. Но это не работает, так как я настроил это прямо сейчас.
function pyt {
cd $PROJECT_ROOT # set elsewhere, parent dir of my_site
DJANGO_SETTINGS_MODULE=my_site.settings python $@
cd $OLDPWD
}
Если я pyt -c "print 'foo'" для проверки, "foo" не печатается. Пустая строка python -c "print 'foo'" печатает его правильно, так что это как-то связано с моей функцией здесь.
Если я добавлю echo $@ внутри функции, все параметры будут распечатаны очень хорошо. Интерпретатор Python также не запускается (это если я просто pyt), поэтому параметр -c, похоже, оказывает какое - то влияние - ничего просто не выводится .
Что мне не хватает?
