여러 명령 파이핑


8

TextEdit에 다음 명령과 파이프 스타우트를 실행하고 싶습니다.

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

이것은 작동하지 않으며 후자를 실행합니다.

어떻게?

답변:


11

아아, bash리디렉션 :-

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

&&하위 쉘에서 명령을 단일 bash 명령으로 실행하고 (이것이 효과가 있음 ) 하위 쉘 ()의 출력을 TextEdit으로 리디렉션합니다. 기술적으로 &&대신 사용할 필요는 ;없지만 변경의 효과는 명령 중 하나라도 실패하면 해당 시점에서 전체 체인을 중지한다는 것입니다.

참고 : 귀하의 예제에서 모든 명령이 실행 중입니다 ( pmset -g; echo; pmset -g assertions명령 줄에서 실행 하여 증명할 수 있음 ), 파이프는 마지막 명령에만 적용하는 것입니다. 이것이 서브 쉘에서 실행되어야하는 이유입니다.

참고 : 원하는 경우 |문자를 바꾸고 >출력을 파일로 보낼 수 있습니다.


이 작은 팁은 엄청나게 도움이되었습니다. 내장 명령 / 특수 문자의 기능은 거의 문서화되어 있지 않습니다. 다시 감사합니다.
njboot

4

()는 명령을 단일 프로세스로 결합하여 stdout에 연결합니다.

(pmset -g; echo; pmset -g assertions) | open -f -a TextEdit
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.