8 votos

Varios comandos de tuberías

Me gustaría ejecutar el siguiente comando y cerveza de malto de la pipa de ambos a TextEdit:

pmset -g; echo; pmset -g assertions | open -f -a TextEdit 

Esto no funciona, solo se ejecuta el último:

¿Cómo?

11voto

Tony Williams Puntos 4903

Aahhh, bash redirección :-

( pmset -g && echo && pmset -g assertions ) | open -f -a TextEdit

Que ejecuta sus comandos como un solo comando de bash (que es el efecto de la &&) en una sub-shell (que es lo que envolverlo en la () ) y redirige la salida de la sub-shell en TextEdit para usted. Técnicamente no tiene que usar && en lugar de ; , pero el efecto del cambio es que si alguno de los comandos que no va a parar toda la cadena en ese momento.

Nota: En el ejemplo, todos los comandos se ejecutan (como se puede demostrar simplemente ejecutando pmset -g; echo; pmset -g assertions en la línea de comandos), es sólo que usted está solicitando que el tubo sólo la última. Es por eso que se necesita para ser ejecutado en una subshell.

Nota: puede sustituir el | personaje con > y enviar la salida a un archivo si lo desea.

4voto

Jordan W. Puntos 1083

() combinar los comandos en un solo proceso, concatenando a stdout:

(pmset -g; echo; pmset -g assertions) | open -f -a TextEdit

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