실제로 스크립트의 출력인 mknod를 사용하여 Linux에서 특수 파일을 만들 수 있습니까?
예:
cat specialfile
산출:
testing 123
특수 파일 내에서:
echo "testing 123"
따라서 실제로 표시하는 대신 echo "testing 123"
스크립트 출력 결과를 표시합니다.testing 123
스크립트 이름과 출력 핸들이 편집될 수 있도록 두 개의 서로 다른 파일이어야 한다는 것을 알고 있습니다. specialfile.sh
스크립트 및 specialfile
핸들 의 경우
답변1
명명된 FIFO( mkfifo <name>
)를 생성한 후 다음을 수행할 수 있습니다.
mkfifo my-fifo
echo "testing 123" > my-fifo
다른 셸에서 다음을 수행합니다.
dumb-program my-fifo
어리석은 프로그램에게 FIFO는 파일처럼 보입니다(정확히는 찾을 수 없기 때문에 그렇지는 않습니다). 이는 다음과 같이 익명 파이프를 사용하여 이를 수행하는 것과 동일합니다.
echo "testing 123" | dumb-program /dev/stdin
또는 다음과 같이 최신 셸에서 프로세스 대체를 사용합니다.
dumb-program <(echo "testing 123")
장치 노드에 대해서는 잘 모르겠지만 나에게는 문제에 잘못된 방식으로 접근하고 있는 것 같습니다.
답변2
cat
명령줄의 하위 쉘에서 이를 실행할 수 있습니다 .
$(cat specialfile)
그러면 쉘이 출력을 해석합니다.