У меня есть скрипт bash, вызывающий скрипт на python, который я хочу file
передать через stdin. Вызов сценария bash:
./script.sh < file
И содержание script.sh
:
#! /usr/bin/env bash
pushd /some/python/virtual/environment/working/dir
source venv/bin/activate
python main.py ??????
deactivate
popd
Я не знаю, что заполнять, ??????
чтобы передать содержимое file
данного сценария bash как stdin в сценарий python main.py
.
Обратите внимание , что file
может быть существенным текстовый файл и использовать в Bash read
является не желательным.
Использование stdin при вызове скрипта bash является обязательным. Я гибкий, чтобы передать все, что угодно main.py
.
Есть какие-нибудь идеи, как решить эту головоломку?
прибавление
Ответ @cas дал мне понять, что мне также нужно объяснить, в каком контексте я пытаюсь использовать script.sh
.
Я хочу использовать script.sh
в качестве сценария пересылки~/.forward
, с содержанием:
|/path/to/script.sh
Какой постфикс называется как /path/to/script.sh
; журнал ясно об этом. Простой тест с использованием урезанной версии скрипта Python, например:
|/path/to/simple/main.py
Демонстрирует, что postfix выполняет вызов main.py
с содержимым почты на stdin. Но комбинация, похоже, не работает.
local
LDA postfix или что-то еще, напримерprocmail
илиdeliver
? есть ли в вас~/.bashrc
что-то, что может нарушить окружающую среду, как видно изmain.py
бега изнутриscript.sh
? может быть, войти в среду, запустив что-то вроде{ typeset -p ; echo } >> "/tmp/forward.log"
в script.sh.