Tengo un script bash que invoca un script python del que quiero alimentar el contenido a filetravés de stdin. Llamando al script bash como:
./script.sh < file
Y los contenidos de script.sh:
#! /usr/bin/env bash
pushd /some/python/virtual/environment/working/dir
source venv/bin/activate
python main.py ??????
deactivate
popd
No tengo idea de qué llenar para ??????pasar el contenido de filedado al script bash como stdin al script python main.py.
Tenga en cuenta que filepuede ser un archivo de texto sustancial y noread es deseable usar bash .
Usar stdin al invocar el script bash es un requisito. Soy flexible para pasar lo que sea main.py.
¿Alguna idea sobre cómo abordar este enigma?
adición
La respuesta de @cas me dejó claro que también necesito explicar en qué contexto trato de usar script.sh.
Quiero usar script.shcomo script de reenvío~/.forward , con el contenido:
|/path/to/script.sh
Qué postfix llama como /path/to/script.sh; el registro es claro al respecto. Una prueba simple con una versión reducida del script de Python, como:
|/path/to/simple/main.py
Demuestra que postfix llama main.pycon el contenido del correo en el stdin. Pero la combinación no parece funcionar.
localLDA de postfix o alguna otra cosa, comoprocmailodeliver? ¿Hay algo en ti~/.bashrcque pueda perturbar el medio ambiente como se vemain.pycuando se ejecuta desde dentroscript.sh? tal vez registre el entorno ejecutando algo como{ typeset -p ; echo } >> "/tmp/forward.log"dentro de script.sh.