3 votos

Ejecutar múltiples comandos en la terminal

Me dicen que ejecute este comando en la terminal:

 sudo env PATH=$PATH:/usr/local/bin /usr/local/lib/node_modules/pm2/bin/pm2 unstartup launchd -u dora --hp /Users/dora
 

Parece que son múltiples comandos en una línea:

 sudo env PATH=$PATH:/usr/local/bin

/usr/local/lib/node_modules/pm2/bin/pm2 unstartup launchd -u dora --hp /Users/dora
 

¿Pero como funciona? Sé A; B, A && B, A || B, pero esto se parece a A B.

1voto

De hecho son varios comandos que consigue correr aquí. Si usted mira para arriba man env encontrarás

SYNOPSIS
    env [-iv] [-P altpath] [-S string] [-u name] [name=value ...] [utility [argument ...]]

lo que explica que env hace, entre otras cosas,

  • asignar valores a las variables (la [name=value ...] bits que en su caso es PATH=$PATH:/usr/local/bin /usr/local/lib/node_modules/pm2/bin/pm2)
  • y, a continuación, ejecuta otro programa que se pasa como argumento ( [utility [argument ...]] bits, en su caso, la llamada a npm).

Aquí la intención es extender la RUTA de búsqueda de la ejecución del comando a través de la sudo con el fin de tener npm encontrar todos los archivos ejecutables que necesita.

Esto es puramente una función de env, otros comandos como, por ejemplo sudo o xargs tienen capacidades similares. OTOH A;B, A && B o A || B son funciones de shell.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X