У меня есть обезглавленное устройство, которое можно удаленно обновлять.Bash - Как поймать ошибку синтаксиса Python 3
Аппаратное обеспечение не более чем запускает скрипт python при загрузке. Я пытаюсь повысить надежность этой системы обновления.
Если бы я обновить оборудование с прослушивается питон скрипт (например, неправильно пишется print
или return
(это случается!) Или отсутствует двоеточие), то интерпретатор питона откажет запустить его, как он разбирает весь сначала скрипт.
В этом «разборе» он вернет синтаксическую ошибку. Как я могу поймать это и выполнить другое действие?
вы можете сделать 'питон foo.py 2> & 1 | grep "SyntaxError:" '(так как код возврата вам не поможет: это 1 на недопустимый синтаксис), полагайтесь на код возврата' grep' и полагайтесь на 'PIPESTATUS' для кода возврата скрипта –
Я бы рекомендовал использовать python linter (pep8), чтобы вы всегда были уверены, что у вас нет синтаксических ошибок – edi9999
, вы также можете попытаться скомпилировать свой код (http://stackoverflow.com/questions/471191/why-compile-python-code) –