Il y a un risque ? Attention (entendons-nous bien ;)), ma question précise est : est-il possible avec le script ci-dessus que le programme "un_prog" reçoive en entrée un flux qui soit différent de l'argument 1 passé au script (une fois celui-ci développé par le shell etc. bien sûr) ? Si oui, est-ce possible d'avoir un exemple ?
Sinon, c'est vrai que echo est une commande très fourbe, mais que faut-il utiliser à la place ? printf ? Le souci avec printf, c'est que si par exemple la variable contient un "%", ça va changer son comportement et ça va mettre la pagaille, non ?
Je suis très intéressé par des réponses à ces questions étant donné qu'il m'arrive assez souvent de faire des scripts en shell.
-- François Lafont
Bonjour,
On 15/10/2015 12:14, Nicolas George wrote:
Ne jamais utiliser echo avec des données provenant de l'extérieur. C'est à
réserver à du texte élémentaire directement présent dans le script.
Et par exemple avec ça (je mets des doubles quotes au niveau du echo) :
Il y a un risque ? Attention (entendons-nous bien ;)), ma question précise
est : est-il possible avec le script ci-dessus que le programme "un_prog"
reçoive en entrée un flux qui soit différent de l'argument 1 passé au
script (une fois celui-ci développé par le shell etc. bien sûr) ? Si oui,
est-ce possible d'avoir un exemple ?
Sinon, c'est vrai que echo est une commande très fourbe, mais que faut-il
utiliser à la place ? printf ? Le souci avec printf, c'est que si par
exemple la variable contient un "%", ça va changer son comportement et ça
va mettre la pagaille, non ?
Je suis très intéressé par des réponses à ces questions étant donné
qu'il m'arrive assez souvent de faire des scripts en shell.
Il y a un risque ? Attention (entendons-nous bien ;)), ma question précise est : est-il possible avec le script ci-dessus que le programme "un_prog" reçoive en entrée un flux qui soit différent de l'argument 1 passé au script (une fois celui-ci développé par le shell etc. bien sûr) ? Si oui, est-ce possible d'avoir un exemple ?
Sinon, c'est vrai que echo est une commande très fourbe, mais que faut-il utiliser à la place ? printf ? Le souci avec printf, c'est que si par exemple la variable contient un "%", ça va changer son comportement et ça va mettre la pagaille, non ?
Je suis très intéressé par des réponses à ces questions étant donné qu'il m'arrive assez souvent de faire des scripts en shell.
-- François Lafont
Nicolas George
Francois Lafont , dans le message <561f8802$0$3323$, a écrit :
Il y a un risque ? Attention (entendons-nous bien ;)), ma question précise est : est-il possible avec le script ci-dessus que le programme "un_prog" reçoive en entrée un flux qui soit différent de l'argument 1 passé au script (une fois celui-ci développé par le shell etc. bien sûr) ? Si oui, est-ce possible d'avoir un exemple ?
Essaie avec arg1 qui contient des backslashes ou commence par un tiret. Le résultat va dépendre de la version du shell et d'echo.
Sinon, c'est vrai que echo est une commande très fourbe, mais que faut-il utiliser à la place ? printf ?
Oui.
Le souci avec printf, c'est que si par exemple la variable contient un "%", ça va changer son comportement et ça va mettre la pagaille, non ?
Non, le premier argument de printf doit (presque) toujours être constant.
Francois Lafont , dans le message
<561f8802$0$3323$426a74cc@news.free.fr>, a écrit :
Il y a un risque ? Attention (entendons-nous bien ;)), ma question précise
est : est-il possible avec le script ci-dessus que le programme "un_prog"
reçoive en entrée un flux qui soit différent de l'argument 1 passé au
script (une fois celui-ci développé par le shell etc. bien sûr) ? Si oui,
est-ce possible d'avoir un exemple ?
Essaie avec arg1 qui contient des backslashes ou commence par un tiret. Le
résultat va dépendre de la version du shell et d'echo.
Sinon, c'est vrai que echo est une commande très fourbe, mais que faut-il
utiliser à la place ? printf ?
Oui.
Le souci avec printf, c'est que si par
exemple la variable contient un "%", ça va changer son comportement et ça
va mettre la pagaille, non ?
Non, le premier argument de printf doit (presque) toujours être constant.
Francois Lafont , dans le message <561f8802$0$3323$, a écrit :
Il y a un risque ? Attention (entendons-nous bien ;)), ma question précise est : est-il possible avec le script ci-dessus que le programme "un_prog" reçoive en entrée un flux qui soit différent de l'argument 1 passé au script (une fois celui-ci développé par le shell etc. bien sûr) ? Si oui, est-ce possible d'avoir un exemple ?
Essaie avec arg1 qui contient des backslashes ou commence par un tiret. Le résultat va dépendre de la version du shell et d'echo.
Sinon, c'est vrai que echo est une commande très fourbe, mais que faut-il utiliser à la place ? printf ?
Oui.
Le souci avec printf, c'est que si par exemple la variable contient un "%", ça va changer son comportement et ça va mettre la pagaille, non ?
Non, le premier argument de printf doit (presque) toujours être constant.
Francois Lafont
On 15/10/2015 17:31, Nicolas George wrote:
Francois Lafont , dans le message <561f8802$0$3323$, a écrit :
Il y a un risque ? Attention (entendons-nous bien ;)), ma question précise est : est-il possible avec le script ci-dessus que le programme "un_prog" reçoive en entrée un flux qui soit différent de l'argument 1 passé au script (une fois celui-ci développé par le shell etc. bien sûr) ? Si oui, est-ce possible d'avoir un exemple ?
Essaie avec arg1 qui contient des backslashes ou commence par un tiret. Le résultat va dépendre de la version du shell et d'echo.
Ah ah, bien vu. ;) En effet, en prenant ce script :
Est-ce bien cela que tu voulais dire ? En tout cas merci bien, ça me servira ce « truc ».
-- François Lafont
On 15/10/2015 17:31, Nicolas George wrote:
Francois Lafont , dans le message
<561f8802$0$3323$426a74cc@news.free.fr>, a écrit :
Il y a un risque ? Attention (entendons-nous bien ;)), ma question précise
est : est-il possible avec le script ci-dessus que le programme "un_prog"
reçoive en entrée un flux qui soit différent de l'argument 1 passé au
script (une fois celui-ci développé par le shell etc. bien sûr) ? Si oui,
est-ce possible d'avoir un exemple ?
Essaie avec arg1 qui contient des backslashes ou commence par un tiret. Le
résultat va dépendre de la version du shell et d'echo.
Ah ah, bien vu. ;)
En effet, en prenant ce script :
Francois Lafont , dans le message <561f8802$0$3323$, a écrit :
Il y a un risque ? Attention (entendons-nous bien ;)), ma question précise est : est-il possible avec le script ci-dessus que le programme "un_prog" reçoive en entrée un flux qui soit différent de l'argument 1 passé au script (une fois celui-ci développé par le shell etc. bien sûr) ? Si oui, est-ce possible d'avoir un exemple ?
Essaie avec arg1 qui contient des backslashes ou commence par un tiret. Le résultat va dépendre de la version du shell et d'echo.
Ah ah, bien vu. ;) En effet, en prenant ce script :
Francois Lafont , dans le message <56201934$0$3082$, a écrit :
printf '%sn' "$arg1" | cat Est-ce bien cela que tu voulais dire ?
Exactement.
Note que pour les cas simples :
cat <<EOF $arg1 EOF
doit faire l'affaire aussi.
Francois Lafont
On 16/10/2015 00:18, Nicolas George wrote:
Est-ce bien cela que tu voulais dire ?
Exactement.
Note que pour les cas simples :
cat <<EOF $arg1 EOF
doit faire l'affaire aussi.
Ok, merci bien... ;)
... et désolé Dominique pour cette petite digression sur votre fil de discussion, pour lequel je n'ai d'ailleurs pas la moindre idée de solution (en général j'essaye autant que possible de ne pas utiliser des commandes propres à bash).
-- François Lafont
On 16/10/2015 00:18, Nicolas George wrote:
Est-ce bien cela que tu voulais dire ?
Exactement.
Note que pour les cas simples :
cat <<EOF
$arg1
EOF
doit faire l'affaire aussi.
Ok, merci bien... ;)
... et désolé Dominique pour cette petite digression sur votre fil
de discussion, pour lequel je n'ai d'ailleurs pas la moindre idée de
solution (en général j'essaye autant que possible de ne pas utiliser
des commandes propres à bash).
... et désolé Dominique pour cette petite digression sur votre fil de discussion, pour lequel je n'ai d'ailleurs pas la moindre idée de solution (en général j'essaye autant que possible de ne pas utiliser des commandes propres à bash).