Me gustaría ejecutar el siguiente comando y la tubería sólida de ambos en TextEdit:
pmset -g; echo; pmset -g assertions | open -f -a TextEdit
Esto no funciona, solo ejecuta lo último:
¿Cómo?
fuente
Me gustaría ejecutar el siguiente comando y la tubería sólida de ambos en TextEdit:
pmset -g; echo; pmset -g assertions | open -f -a TextEdit
Esto no funciona, solo ejecuta lo último:
¿Cómo?
Aahhh, bash
redirección: -
( pmset -g && echo && pmset -g assertions ) | open -f -a TextEdit
Eso ejecuta sus comandos como un solo comando bash (ese es el efecto de &&
) en un sub-shell (que es lo que lo envuelve ()
) y redirige la salida del sub-shell en TextEdit para usted. Técnicamente, no tiene que usarlo en &&
lugar de hacerlo, ;
pero el efecto de cambiarlo es que si alguno de los comandos falla, se detendrá toda la cadena en ese punto.
Nota: en su ejemplo, todos los comandos se están ejecutando (como puede probar simplemente ejecutando pmset -g; echo; pmset -g assertions
en la línea de comandos), es solo que está aplicando la tubería solo al último. Es por eso que debe ejecutarse en una subshell.
Nota: si lo desea, puede reemplazar el |
carácter >
y enviar la salida a un archivo.
() combina los comandos en un solo proceso, concatenándolos en stdout:
fuente