J'ai un script bash invoquant un script python dont je veux alimenter le contenu file
via stdin. Appel du script bash comme:
./script.sh < file
Et le contenu de script.sh
:
#! /usr/bin/env bash
pushd /some/python/virtual/environment/working/dir
source venv/bin/activate
python main.py ??????
deactivate
popd
Je ne sais pas quoi remplir pour ??????
passer le contenu de file
given au script bash en tant que stdin au script python main.py
.
Notez qu'il file
peut s'agir d'un fichier texte substantiel et l'utilisation de bash read
n'est pas souhaitable.
L'utilisation de stdin lors de l'appel du script bash est une exigence. Je suis flexible pour passer quoi que ce soit main.py
.
Avez-vous des idées sur la façon de résoudre cette énigme?
une addition
La réponse de @cas m'a fait comprendre que je dois également expliquer dans quel contexte j'essaie d'utiliser script.sh
.
Je veux utiliser script.sh
comme script de transfert dans ~/.forward
, avec le contenu:
|/path/to/script.sh
Quel suffixe appelle comme /path/to/script.sh
; le journal est clair à ce sujet. Un test simple utilisant une version déguisée du script python, comme:
|/path/to/simple/main.py
Montre que postfix appelle main.py
avec le contenu du courrier sur le stdin. Mais la combinaison ne semble pas fonctionner.
local
LDA de postfix ou autre chose, commeprocmail
oudeliver
? y a-t-il quelque chose dans votre maison~/.bashrc
qui pourrait perturber l'environnement tel que vu par lamain.py
course de l'intérieurscript.sh
? peut-être enregistrer l'environnement en exécutant quelque chose comme à l'{ typeset -p ; echo } >> "/tmp/forward.log"
intérieur de script.sh.