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, bashredirecció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 assertionsen 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