Получение командной строки Python при вызове из сценария bash

Это может быть очень простой вопрос. Я вызываю сценарий Python на Lubuntu OS (Cubietruck) через сценарий оболочки. Это автоматизация процесса при запуске (я хочу поддерживать этот процесс). Есть ли простой способ просмотра вывода из Python? В настоящий момент сценарий Python работает в фоновом режиме, без терминала. У меня есть некоторые ошибки, требующие проверки. Скрипт:

#!/bin/sh python recordSound.py 

Заранее спасибо.

4 Solutions collect form web for “Получение командной строки Python при вызове из сценария bash”

Правильное решение, вероятно, будет использовать logging как было предложено в комментарии.

Тем временем вам нужно перенаправить как стандартный вывод, так и стандартный поток ошибок , чтобы зафиксировать нормальный выход в виде стены как любую ошибку, указанную вашим скриптом:

 #!/bin/sh python recordSound.py >> logfile.log 2&>1 

См. Одну из многих веб-страниц на эту тему, чтобы изучить различное перенаправление, доступное из сценария оболочки.


Кроме того, если вам нужны как вход в систему, так и просмотр в реальном времени на консоли, используйте стандартную команду tee :

 #!/bin/sh python recordSound.py 2&>1 | tee logfile.log 

Очень простой способ перенаправить вывод из вашего скрипта в файл

 #!/bin/sh python recordSound.py >> logfile.log 

См. Документы по перенаправлению ввода-вывода

Я не эксперт по bash, но я думаю, что это должно работать, поскольку python выводит на стандартный вывод, если не указано иначе:

 #!/bin/sh python recordSound.py >> /tmp/my_python_log.txt 

будет добавлять строки каждый раз, когда python выводит материал. Перейдите к пути, указанному для чтения результата. Если вы хотите жить, используйте трубы '|' для перенаправления вывода.

Изменить: для просмотра в реальном времени вы также можете использовать команду «tail -f /tmp/my_python_log.txt» на другом терминале по мере запуска другого решения, которое сначала напечатает последние 10 строк или около того в файле, затем автоматически добавьте новые строки. Мне нравится эта команда, очень удобная для просмотра активности на небольшом сервере Apache. Вы можете смотреть сразу несколько журналов!

Вызовите свой скрипт напрямую. Так же, как вы называете скрипт bash с помощью shebang (#!), Вы можете вызвать свой скрипт python с помощью «#! / Bin / env python». Затем все, что вам нужно сделать, это предоставить разрешение на выполнение с помощью «chmod + x yourscript.py» и вызвать ваш скрипт прямо как приложение. Таким образом, вы можете увидеть коды ошибок. Другой способ сделать это – использовать модуль logger, который отлично подходит для отслеживания и отладки информации.

  • ImportError не может импортировать имя BytesIO при импорте caffe на ubuntu
  • Проблема с установкой matplotlib python 3
  • ОШИБКА: не удалось получить доступ к файлу «$ libdir / plpython2»: нет такого файла или каталога
  • theano.test (): сбой оптимизации из-за постоянной_складки (на ubuntu)
  • Выполнить команду на удаленной машине в Python
  • Тест-драйв Django не работает в virtualenv на Ubuntu
  • Почему мое сообщение Protobuf усекается только при отправке из окна Windows в ящик Linux?
  • Компиляция Cx-Freeze под Ubuntu
  • Python - лучший язык программирования в мире.