Często chcę podawać stosunkowo krótkie dane łańcuchowe (choć może to być kilka wierszy) do programów wiersza poleceń, które przyjmują tylko dane wejściowe z plików (np. Wdiff) w powtarzający się sposób. Jasne, że mogę utworzyć jeden lub więcej plików tymczasowych, zapisać tam ciąg i uruchomić polecenie z nazwą pliku jako parametrem. Ale wydaje mi się, że ta procedura byłaby wysoce nieefektywna, jeśli dane są faktycznie zapisywane na dysk, a także może uszkodzić dysk bardziej niż to konieczne, jeśli powtórzę tę procedurę wiele razy, np. Jeśli chcę podać pojedyncze wiersze długiego tekstu pliki do wdiff. Czy istnieje zalecany sposób na obejście tego, na przykład za pomocą pseudoplików, takich jak potoki, do tymczasowego przechowywania danych bez faktycznego zapisywania ich na dysku (lub zapisywania tylko wtedy, gdy przekracza on długość krytyczną). Zauważ, że wdiff bierze dwa argumenty i,wdiff <"text"
.
xargs
, wprowadziłbym wiersze wejściowe z argumentów ciągu pliku dla polecenia. Ale potrzebuję czegoś przeciwnego.
echo $data_are_here | dumb_program
?
xargs
?