3 votos

Ejecución de varios comandos en el 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 varios 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, ¿cómo funciona eso? Conozco A;B, A&&B, A||B, pero esto parece A B.

1voto

En efecto, son múltiples los comandos que se ejecutan aquí. Si busca man env encontrarás

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

que explica que env hace, entre otras cosas,

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

La intención aquí es ampliar el PATH de búsqueda del comando ejecutado a través de sudo para tener npm encontrar todos los ejecutables que necesita.

Esto es puramente una característica de env , otros comandos como sudo o xargs tienen capacidades similares. POR OTRO LADO, A;B , A && B o A || B son características de la cáscara.

0 votos

¡Eso tiene sentido! Estuve usando sudo todo el tiempo y no me di cuenta de que en realidad estaba tomando un comando extra. Gracias @nohillside

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