TCL: exec egrep “processus enfant est sorti anormalement”

J'ai un problème avec la commande egrep.
Lorsque j'exécute ma commande en tcsh il est travail parfait, mais quand je l'exécuter de script tcl ou dans tclsh, j'ai eu:

processus enfant est sorti anormalement

Mon tcl code:

exec egrep -i "^(\\\s+)?(tvf::)?LAYOUT\\\s+PATH" test_file

La test_file contenir

LAYOUT PATH "file1"
  LAYOUT PATH "file2"
//LAYOUT FILE "file 3"
foo string
tvf::LAYOUT PATH "file4"
  tvf::LAYOUT PATH "file5"

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Bonjour à tous,

J'ai fait quelques investigations supplémentaires et exécutez cette commande sur un ordinateur 32 bits.
La commande fonctionne correctement avec 32 bits egrep

Résultat:

LAYOUT PATH "file1"
    LAYOUT PATH "file2"
tvf::LAYOUT PATH "file3"
      tvf::LAYOUT PATH "file3"

fichier /bin/egrep
*/bin/egrep: lien symbolique `grep'*

fichier /bin/grep
*/bin/grep: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), pour GNU/Linux 2.2.5, liée de façon dynamique (utilise shared libs), dépouillé*

Mais quand j'ai supprimer les barres obliques inverses :

exec egrep -i "^(\s+)?(tvf::)?LAYOUT\s+PATH" test_file

La commande de retour d'erreur:

processus enfant est sorti anormalement

La egrep version 64 bits de la machine est:

fichier /bin/egrep
*/bin/egrep: lien symbolique `grep'*

fichier /bin/grep
*/bin/grep: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), pour GNU/Linux 2.6.9, liée de façon dynamique (utilise shared libs), pour GNU/Linux 2.6.9, dépouillé*

Mon, ce que beaucoup de barres obliques inverses que vous avez là...
Bonjour Donal, sans ces barres obliques inverses la commande de retour d'erreur sur l'ordinateur 32 bits
Mettre REs dans { accolades } vous permettrait de réduire le nombre, que rien n'aurait besoin de le citer.
Et “ordinateur 32 bits” est juste le plus grand de red herring jamais. La taille de la machine parole et de l'espace d'adressage a rien à voir avec votre problème.

OriginalL'auteur Roman Kaganovich | 2012-04-29