Я не уверен, что это хорошая идея, но вы могли бы сделать такой сценарий.
#!/usr/bin/env bash
PYTHON_PROJECT_DIR=/path/to/python/project/dir
pushd ${PYTHON_PROJECT_DIR}
VALUES="first line of stream\nsecondline of stream\n"
pipenv run /path/to/your/script.py < (echo -e $VALUES)
popd
pushd
и popd
- это команды для перемещения со стеком каталогов, поэтому вы окажетесь в каталоге в верхней части стека, поэтому добавив один каталог, вы переместите в рабочий каталог, и, нажав, вы вернетесь в исходное положение.
Использование pipenv
позволяет запускать сценарии в виртуальной среде (это не так сложно настроить), таким образом вы будете использовать переменные среды в файлах .env
для проекта, и выЯ буду использовать только зависимости этого проекта.(относится к python).
Если вы передадите такие значения, как скрипт python, когда он запрашивает значение из stdin
, он будет использовать значения, которые вы выводили (строка за строкой, первая строка - первый вводи так далее)
Это может быть способ.
Лично, когда я это делаю cronjobs
Мне нравится запускать непосредственно сценарии bash, потому что я мог бы добавить дополнительное ведение журнала, так что наличие сценария-обертки не кажется таким необоснованным.
Еще одна вещь, которую вы можете сделать, это получить путь к исполняемому файлу python (для виртуальной среды) и использовать его в качестве интерпретатора, заменив #!/usr/bin/env python
на #!/path/to/pythons/virtual/env/interpreter
, но вы не получите .env variables
(может быть, есть способ их получить.