Как выполнить сценарий вместо чтения из файла?

Можно ли настроить файл так, чтобы при обращении к нему (открытии для чтения) возвращалось не содержимое файла, а результаты выполнения сценария или исполняемого файла?

Я понимаю, что это можно сделать из командной строки с помощью stdout и каналов, но мне не всегда нужно ссылаться на скрипт из командной строки.

0
23.03.2017, 11:39
1 ответ

Вы не можете напрямую это. Что вы можете сделать, это (как вы говорите) использовать stdout и каналы. Не идеально и не особенно элегантно, поэтому вам, вероятно, следует переосмыслить свои требования и предлагаемое решение.

Предположим, файл, о котором идет речь, должен называться 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
1
28.01.2020, 04:47

Теги

Похожие вопросы