Я часто хочу надсилати відносно короткі рядкові дані (хоча може бути декілька рядків) для програм командного рядка, які приймають лише введення з файлів (наприклад, wdiff) повторно. Звичайно, я можу створити один або кілька тимчасових файлів, зберегти туди рядок і запустити команду з ім'ям файла в якості параметра. Але мені здається, що ця процедура була б дуже неефективною, якщо дані насправді записуються на диск, а також вона може зашкодити диску більше, ніж потрібно, якщо я повторюю цю процедуру багато разів, наприклад, якщо я хочу подавати окремі рядки довгого тексту файли до wdiff. Чи є рекомендований спосіб обійти це, скажімо, використовуючи псевдофайли, такі як труби, для тимчасового зберігання даних, фактично не записуючи їх на диск (або записуючи їх, лише якщо вони перевищують критичну довжину). Зауважте, що wdiff бере два аргументи і,wdiff <"text"
.
xargs
, вводяться рядки вводу з аргументів файлових рядків для команди. Але мені потрібно навпаки.
echo $data_are_here | dumb_program
?
xargs
?