Могу ли я создать специальный файл в linux, который на самом деле является результатом сценария?

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

пример:

cat specialfile

вывод:

testing 123

внутри специального файла:

echo "testing 123"

Поэтому вместо фактического отображения echo "testing 123"
он показывает результат тестового testing 123

Я понимаю, что имя сценария и дескриптор вывода могут быть двумя разными файлами, поэтому его можно редактировать, т. Е. specialfile.sh для скрипта и специального specialfile для дескриптора

  • Есть ли альтернатива команде «sed -i» в Solaris?
  • Выведите диапазон столбцов из файла, где диапазон задается двумя переменными
  • Как можно разделить текстовый файл на основе содержимого на несколько текстовых файлов?
  • извлекать данные из текстовых файлов в csv
  • Добавьте каждые две строки подряд в колонку и разделите ее на предыдущую и напечатайте
  • скопировать и заменить столбец с помощью unix
  • файл формата для удаления "символов
  • Как вставить строку между двумя последовательными,?
  • 2 Solutions collect form web for “Могу ли я создать специальный файл в linux, который на самом деле является результатом сценария?”

    Вы можете создать именованный 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") 

    Я не уверен в узлах устройства, но мне кажется, что вы приближаетесь к проблеме неправильно.

    Вы можете выполнить cat в подоболочке в командной строке:

     $(cat specialfile) 

    Затем вывод будет интерпретироваться оболочкой.

    Linux и Unix - лучшая ОС в мире.