как выполнить программу python в сценарии оболочки

У меня есть программа python, в которой я написал код python (disk.py). Я выполнил эту программу с помощью команды python disk.py в терминале, она сработала.

Теперь я хочу выполнить его с помощью сценария оболочки.

3 Solutions collect form web for “как выполнить программу python в сценарии оболочки”

Чтобы иметь возможность выполнять как ./disk.py вам нужно две вещи:

  1. Измените первую строку следующим образом: #!/usr/bin/env python
  2. Сделайте исполняемый файл сценария: chmod +x disk.py

Сценарий оболочки должен выглядеть следующим образом:

 #!/bin/sh python disk.py 

Как упоминалось в @SHW, вопрос действительно спрашивает о выполнении программы python в сценарии оболочки (не запуская скрипт python напрямую с ./disk.py )

Итак, расширяя ответ @SHW, ваш сценарий оболочки должен выглядеть так:

 #!/bin/bash /usr/bin/python /absolute/path/to/your/disk.py 

Обратите внимание на /usr/bin/python вместо простого python ; использование абсолютных путей помогает сценарию точно знать, что использовать python (чтобы найти абсолютный путь к вашему установленному питону, which python использует which python ).

Такая же история при использовании абсолютных путей с вашим скриптом python, а не только с disk.py В моем случае я пытался запустить приложение Django из моего сценария bash, поэтому мне пришлось добавить абсолютный путь для моего manage.py чтобы он работал правильно.

Кроме того, в отношении заголовка вашего сценария bash существует несколько альтернатив #!/bin/bash . Пожалуйста, взгляните на этот вопрос, чтобы узнать больше об этом.

Приветствия.

  • Установка ОС в каталог
  • Сетевой интерфейс, не регистрирующий ответ ARP
  • Что Linux Distro поддерживает поддержку Ethernet-чипа Killer E2200?
  • Как записывать в каталог как часть сценария оболочки и делать число слов в файлах?
  • Ограничение Openfiles автоматически уменьшается при передаче 2 ^ 21, Ubuntu 16.04
  • Как я могу удовлетворить требования «предупреждения» Pinax?
  • Как я могу контролировать использование ЦП пользователем?
  • Дублируйте источники в APT-файлах Ubuntu 14.10, они в порядке?
  • Когда и почему вы запускаете /etc/init/failsafe.conf на сервере Ubuntu 12.04?
  • Можно ли настроить приложения для использования разных сетевых интерфейсов по-разному? Если да, то как?
  • Как удалить / изменить сообщение, отображаемое при открытии терминала?
  • Linux и Unix - лучшая ОС в мире.