Prendre des arguments de stdin

santiago69 Messages postés 485 Statut Membre -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
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

--

Il y a 10 types de personnes dans le monde
Ceux qui comprennent le binaire et les autres.

2 réponses

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    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