Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

passage de parametres depuis un script unix

3 réponses
Avatar
Michel Petitjean
Bonjour.

J'ai un source python test.py qui lit 3 parametres (chaines de
caracteres) au clavier avec raw.input
Exemple: chaine = raw_input("Chaine ?")
Je souhaite executer le source python a partir d'un script sous shell
sans avoir a entrer les donnees au clavier (les parametres sont
declares dans le script shell).
J'ai essaye de passer les parametres comm pour un binaire, exemple:

pwd
echo "fichier d entree : " $1
echo "fichier de sortie: " $2
echo "chaine " $3

cat << eof | python test.py
$1
$2
$3
eof

Mais ca ne marche pas: je dois quand meme entrer les donnees au
clavier.
Quelle est la syntaxe a utiliser ?

Merci.

3 réponses

Avatar
Francois Lafont
Bonjour,

En fait ce problème n'est pas du tout un problème Python mais un
problème de shell Unix uniquement, ce n'est donc pas vraiment le bon
groupe de discussion.

Ceci étant je m'étais déjà posé la même question et je pense que ceci
devrait y répondre. Mettre dans le script qui appelle le script python
la ligne :

echo $'PARAM1nPARAM2nPARAM3n' | python script.py

Peut-être qu'il y a mieux à faire mais je ne vois pas.


--
François Lafont
Avatar
Francois Lafont
Le 21/04/2011 13:20, Francois Lafont a écrit :

echo $'PARAM1nPARAM2nPARAM3n' | python script.py



Je me demande si cette façon de faire n'est pas valable que pour le
shell Bash. On peut faire aussi comme dans la ligne ci-dessous qui est
peut-être plus portable d'un shell à un autre :

(echo "PARAM1"; echo "PARAM2"; echo "PARAM3") | python script.py


--
François Lafont
Avatar
Michel Petitjean
La solution 2 marche sous tcsh:
( echo $1 ; echo $2 ; echo $3 ) | python test.py
C'etait un probleme de shell.
Merci !

On 21 avr, 13:28, Francois Lafont
wrote:
Le 21/04/2011 13:20, Francois Lafont a crit :

> echo $'PARAM1nPARAM2nPARAM3n' | python script.py

Je me demande si cette fa on de faire n'est pas valable que pour le
shell Bash. On peut faire aussi comme dans la ligne ci-dessous qui est
peut- tre plus portable d'un shell un autre :

(echo "PARAM1"; echo "PARAM2"; echo "PARAM3") | python script.py

--
Fran ois Lafont