Prendre des arguments de stdin

santiago69 Messages postés 485 Statut Membre -  
jipicy Messages postés 41342 Statut Modérateur -
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 19021 Statut Contributeur 5 637
 
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 41342 Statut Modérateur 4 896
 
Salut,

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