명령 중간에 stdout을 파이프하기 위해 emacs를 사용할 수 있습니까?

명령 중간에 stdout을 파이프하기 위해 emacs를 사용할 수 있습니까?

주문하다

emacs -nw foo -f org-mode

fooemacs파일을 엽니다 org-mode.

이제 파일 이름이 foo스크립트의 출력이라고 가정합니다. 명령을 어떻게 파이프할 수 있나요?

그래서 나는 다음과 같은 것을 얻고 싶습니다.

echo foo | emacs -nw {GET OUTPUT HERE} -f org-mode

일하다. 가능합니까?

편집: 이 질문은 종료로 투표되었지만 참조 답변은 작동하지 않으며 종료로 투표한 사용자가 테스트하지 않았습니다.

답변1

(주석에서 제안한 대로) 단순히 서브셸을 사용하는 것은 어떻습니까?

emacs -nw $(<COMMAND GOES HERE>) -f org-mode

예를 들어

emacs -nw $(echo foo) -f org-mode

조직 모드에서 "foo"를 엽니다

답변2

a를 사용하여 read파이프에서 파일 이름을 가져와 명령에 변수로 전달합니다.

예를 들어, 쉘 함수를 사용하는 경우(아마 가장 좋은 이름은 아닐 수도 있고 더 나은 이름을 생각할 수도 있습니다):

emacspipe () {
    local filename
    read filename
    emacs -nw "$filename" -f org-mode
}

그런 다음 다음을 사용할 수 있습니다.

$ echo foo | emacspipe

$(...)그러나 다른 답변에서 제안하는 것처럼 명령 대체를 사용하는 것이 동일한 작업을 수행하는 데 더 적절한 방법입니다. 무언가를 파이프로 연결하는 명령이 있는 경우 이를 블록에서 쉽게 실행 $(...)하고 결과 파일 이름을 emacs를 시작하는 스크립트나 함수에 인수로 전달할 수 있습니다.

관련 정보