Node: child_process exec '

Creado en 7 mar. 2017  ·  3Comentarios  ·  Fuente: nodejs/node

  • Versión : v7.7.1
  • Plataforma : Linux ai 4.9.11-1-ARCH x86_64 GNU / Linux
  • Subsistema : child_process

Problema del módulo principal child_process.exec con el comando <().

Ejecuté el mismo comando en mi shell bash y zsh, todo funciona bien. Una vez que copio el mismo comando en el código, aparece este error.
Comando de Shell:
comm -13 <(sort new.csv | uniq) <(sort old.csv | uniq) > diff.csv
Al ejecutar el mismo comando de shell, me arroja un error:

/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `comm -13 <(sort new.csv | uniq) <(sort old.csv | uniq) > diff.csv'

Código:

  exec(`comm -13 <(sort new.csv | uniq) <(sort old.csv | uniq) > diff.csv`,
                (error, stdout, stderr) => {
                    if (error) {
                          return error
                    }
                    console.log(`${stdout}`)
                    console.log(`${stderr}`)
                })

Después de solucionar el problema, creo que el problema es con <( parte del comando.

child_process question

Comentario más útil

Intente pasar la opción shell a child_process.exec , por ejemplo, { "shell": "/bin/bash" } , cuando esté utilizando una sintaxis específica de shell como esta

Todos 3 comentarios

Intente pasar la opción shell a child_process.exec , por ejemplo, { "shell": "/bin/bash" } , cuando esté utilizando una sintaxis específica de shell como esta

Obras. Muchísimas gracias.

Oye,
Estoy enfrentando el mismo problema.

exec('jsdoc -X ./src/!(selector)/*.js > ./documentation/jsdocAST.json', { "shell": "/bin/bash" },(err, stdout, stderr) => {
  if (err) {
    //some err occurred
    console.error(err)
  } else {
   // the *entire* stdout and stderr (buffered)
   console.log(`stdout: ${stdout}`);
   console.log(`stderr: ${stderr}`);
  }
});

¿no es correcto?

¿Fue útil esta página
0 / 5 - 0 calificaciones