파일을 읽는 대신 어떻게 스크립트를 실행할 수 있나요?

파일을 읽는 대신 어떻게 스크립트를 실행할 수 있나요?

참조할 때(읽기 위해 열 때) 파일 내용을 반환하는 대신 스크립트나 실행 파일 실행 결과가 반환되도록 파일을 설정할 수 있습니까?

stdout과 파이프를 사용하여 명령줄을 통해 이 작업을 수행할 수 있다는 것을 알고 있지만 명령줄에서 스크립트를 참조하는 것이 항상 필요한 것은 아닙니다.

답변1

이 작업을 직접 수행할 수는 없습니다. 당신이 할 수 있는 것은 (당신이 말했듯이) 사용하는 것입니다표준 출력그리고 파이프. 이상적이지도 않고 특별히 우아하지도 않으므로 요구 사항과 제안된 솔루션을 다시 생각해 봐야 할 것입니다.

문제의 파일이 호출되고 있고 date현재 날짜/시간에 대한 메시지를 인쇄하려고 한다고 가정합니다.

# Create the "file" as a FIFO (a pipe)
mkfifo date

# Start the background process that always ensures there's data in the FIFO
( while :; do ( echo "The current date/time is $(date)" ) >date; done ) &

# Now read the "file" that's actually a pipe
date        # Date/time now
cat date    # Content from the "file" that's actually a pipe
date        # Date/time now, again

# And a minute or so later, try that again, just to show the effect of a
# repeated read...
cat date

관련 정보