В Linux возможно ли создать файл, который после чтения получает его содержимое из исполняемой программы?

В частности, скажем, у меня есть date программы. Можно ли получить вывод этой программы из чтения файла (используя что-то вроде cat date_file)?

Например, если это возможно:

$ date
05/06/18 22:51:24 UTC-7:00

…30 sec later…

$ date
05/06/18 22:51:54 UTC-7:00

Это возможно?

$ cat date_file
05/06/18 22:51:24 UTC-7:00

…30 sec later…

$ cat date_file
05/06/18 22:51:54 UTC-7:00

Если это возможно, как бы я пошел к достижению этого?

Я знаю, что есть файлы устройств Linux/Unix, но я не уверен, будут ли они работать для этого.

Заранее спасибо!

1 ответ1

2

Нет, то, что вы спрашиваете (как вы спрашиваете), невозможно. Чтение файла - это вызов ОС, который не позволяет выполнять программу как часть этого поведения.

Что-то, что может помочь вам пройти путь к вашей цели, может быть именованным каналом. Именованный канал позволит вам создать виртуальный файл (используя mkfifo). Если у вас есть программа, которая выводит в этот файл, другая отдельная программа может читать из него.

Разумеется, можно преобразовать команду в файл или командную строку и получить файл с «переменными», который затем можно заменить с помощью другой программы.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .