쉘 스크립트를 작성 중이며 스크립트에 명령을 작성하고 싶지만 다른 konsole 세션으로 출력을 리디렉션하고 싶습니다. (kde 사용)
쉘 스크립트를 작성 중이며 스크립트에 명령을 작성하고 싶지만 다른 konsole 세션으로 출력을 리디렉션하고 싶습니다. (kde 사용)
답변:
먼저 현재 tty 세션을 식별하는 번호를 찾으십시오. 숫자를 X
다음 과 같이 고려하십시오 .
| terminal 1 | terminal 2 |
------------------------------------------------------
| $ tty | $ |
| /dev/pts/X | |
그런 다음 주어진 숫자를 사용하여 선택된 tty에 씁니다.
| terminal 1 | terminal 2 |
------------------------------------------------------
| $ tty | $ echo "foo" > /dev/pts/X |
| /dev/pts/X | |
그리고 그것은 생산할 것이다 :
| terminal 1 | terminal 2 |
------------------------------------------------------
| $ tty | $ echo "foo" > /dev/pts/X |
| /dev/pts/X | |
| foo | |
늦었지만 어쩌면 더 좋을 것입니다 ... :-)
mkfifo ~/MyOutput # Create the FIFO (Special file)
./MyScript.sh > ~/MyOutput # In the terminal/console 1
cat ~/MyOutput # In another tty/console
부터 info coreutils 'mkfifo invocation'
:
"FIFO"는 독립적 인 프로세스가 통신 할 수있는 특수 파일 유형입니다. 하나의 프로세스는 쓰기를 위해 FIFO 파일을 열고 다른 프로세스는 셸 또는 다른 곳에서 일반적인 익명 파이프를 사용하여 데이터를 흐르게 할 수 있습니다.
사이드 노트 :
FIFO
동일한 프로세스 (std out, std err)에 대해 둘 이상을 가질 수 있습니다 .FIFOs
모든 출력을 보유합니다. cat MyOutput >> NewRealFile
cat MyOutput
다른 터미널에서도 사용할 수 있습니다 !FIFOs
하면 플럭스가 병합됩니다 ( 해당 라인이 어떤 프로그램과 다른지 구분 하는 우선적 인 방법은 없음).