주문하다
emacs -nw foo -f org-mode
foo
emacs
파일을 엽니다 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를 시작하는 스크립트나 함수에 인수로 전달할 수 있습니다.