как выполнить программу 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 . Пожалуйста, взгляните на этот вопрос, чтобы узнать больше об этом.

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

  • Есть ли причина, по которой я бы не добавил / usr / local / sbin, / usr / sbin, / sbin на свой путь в Debian?
  • Как создать ярлык для скрипта и запустить его как файл .desktop?
  • Хорошая практика использования svn для двух разных приложений, но на одном сервере?
  • Конфигурация и синхронизация файлового сервера Samba для резервирования
  • лотровать каждые 2 часа
  • Сколько можно ожидать от Qemu On PowerPC Linux?
  • Как объединить wget, сортировать и сохранять в новое имя файла?
  • «Du» показывает, что что-то занимает много места, но что именно?
  • Virtualbox: установите общую папку в гостевой FreeBSD из Host Ubuntu
  • Найти файлы и каталоги, доступные для записи
  • CentOS подключен к Интернету, но не обновляет
  • Interesting Posts

    Как диагностировать проблему с использованием дампа ядра?

    Sed и BBedit Html

    Как я могу хранить mtime файлов и каталогов, когда я использую rsync или cp? Для использования в резервном / инкрементальном резервном копировании

    Проблемы, связанные с тем, что Debian получает IP-адрес от заданного адреса сервера, используя DHCP от сервера имен в сети

    Концепция отображения памяти в Unix-подобных системах

    Как написать логику повтора в скрипте, чтобы продолжить повторную попытку до 5 раз?

    Мне нужно взять вывод команды и сделать ее именем файла, используя скрипт

    Emacs: интерфейс, который смешивает команды и аргументы

    Смонтируйте существующий логический том RAID 1 после обновления ОС.

    Ошибка аппаратного обеспечения APEI

    Apache – 403 Запрещено

    Как отключить поддержку мыши в терминале?

    Как вы создаете псевдоним ip, используя утилиты iproute?

    Не удается создать пользователя SFTP Debian 7

    reprepro и gpg-agent – кодовая фраза не будет кэшироваться

    Linux и Unix - лучшая ОС в мире.