Prendre des arguments de stdin

Fermé
santiago69 Messages postés 477 Date d'inscription mercredi 7 mars 2001 Statut Membre Dernière intervention 12 septembre 2016 - 18 nov. 2008 à 11:17
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 18 nov. 2008 à 11:57
salut a tous,
comment faire pour qu'un script prenne soit comme argument la ligne de commande soit stdin.
J'ai tente la chose suivante mais ca ne marche pas (s'il n'y a rien dans stdin, le script bloque).
Si quelqu'un peut tester le script et me dire comment faire pour que ca marche, ce serair cool.
~$ cat /usr/local/bin/squote
cat /dev/stdin | sed 's/'\''/'\''\\'\'\''/g; s/.*/'\''&'\''/g'
echo "$@" | sed 's/'\''/'\''\\'\'\''/g; s/.*/'\''&'\''/g'
~$ cat test
bonjour
aujourd'hui
~$ squote < test
'bonjour'
'aujourd'\''hui'
''
~$ cat test | squote
'bonjour'
'aujourd'\''hui'
''
~$ echo aujourd\'hui | squote
'aujourd'\''hui'
''
~$ squote aujourd\'hui
# la ca bloque

merci d'avance
Santiago



2 réponses

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
18 nov. 2008 à 11:56
hello
une possibilité, vu que la redirection < test n'est pas un paramètre
(if [$# -eq 0 ] ; then
  cat
else
  echo "$@"
fi)| sed 's/'\''/'\''\\'\'\''/g; s/.*/'\''&'\''/g'
0
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
18 nov. 2008 à 11:57
Salut,

Une piste à explorer : https://abs.traduc.org/abs-5.3-fr/ch19.html
0