У меня есть скрипт 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. Но комбинация, похоже, не работает.
localLDA postfix или что-то еще, напримерprocmailилиdeliver? есть ли в вас~/.bashrcчто-то, что может нарушить окружающую среду, как видно изmain.pyбега изнутриscript.sh? может быть, войти в среду, запустив что-то вроде{ typeset -p ; echo } >> "/tmp/forward.log"в script.sh.