Я знаю, что вы можете передать вывод одной команды другой - например,
ls -la | less
, чтобы увидеть вывод ls -la
внутри less
вместо терминала stdio.
Но если вы используете command
с параметром, который сохраняет выходные данные в файл
command --save-to-file file.txt
Тогда как передать это другой команде?
этот способ не будет работать:
command --save-to-file | less
потому что команда будет жаловаться, что вы использовали --save-to-file
без аргументов (имя файла)
Если я хорошо помню, в ram-файле было что-то вроде буфера или временного файла, который вы могли бы поместить вместоfile.txt
чтобы вы могли сделать что-то вроде:
command --save-to-file ram-buffer.txt && cat ram-buffer.txt
Даже не создавая файл на диске, это правильно?
Зачем мне это нужно?
Некоторые изКоманды имеют только базовый вывод в stdio, и более полезный тип вывода не может быть напечатан ими, а только сохранен в файл.Дело в том, что я не заинтересован в том, чтобы вообще сохранять более полезный тип вывода в каком-либо файле, а просто печатать его в терминале или конвейере для цепочки других команд, которые выполняют фильтрацию и т. Д., А затем в конечном итоге печатать обработанный вывод.
Я не хотел бы отвечать за создание файла tmp, затем удалять его и т. Д. В идеале я хотел бы просто использовать некий магический файл (или перенаправление) вместо file.txt
, который я мог бы передать другой команде.
Для меня важно не записывать содержимое вывода на диск, если это возможно.Просто напечатайте его в терминале или канале для другой команды.
В данный момент я пытаюсь захватить вывод PHPUnit
phpunit --log-junit log.xml
, который является не командой оболочки, а PHPскрипт, который использует:
#!/usr/bin/env php
Но я помню, что у меня был пример с командой linux, который я хотел получить, но его форма была доступна только с параметром --save-to-file outputfile.txt
Возможно, потому что передача / перенаправление вывода, предназначенного для сохранения в файл, не является бинарно-безопасной, и поэтому такой вывод может быть поврежден при пересылке / перенаправлении - может ли это быть?