Скрипты на bash — файлдескрипторы баш
Пока комментил предыдущий пост вспомнил о полезной фиче баш - файл дескрипторы, короче баш умеет перенаправлять ввод-вывод команд в специальные файлы, которые можно подсунуть программе.
Проще объяснить на примерах:
Скажем нам нужно сравнить по-быстрому содержимое двух директорий, можно написать мегаскрипт а можно обойтись и одной командой:
чтобы понять как это работает достаточно заменить diff на echo:
/dev/fd/63 /dev/fd/62
Такой приём обычно полезен в случае когда программа-обработчик не умеет выводить или вводить данные с устройств стандартного ввода-вывода, а так-же в случае когда требуется жонглировать с вводом-выводом нескольких программ одновременно.
ps: внимание файл дескрипторы могут быть не включены в вашей версии bash (насколько я помню отсутствует в каких-то редхатах)
Проще объяснить на примерах:
Скажем нам нужно сравнить по-быстрому содержимое двух директорий, можно написать мегаскрипт а можно обойтись и одной командой:
diff <(ls dir1|sort) <(ls dir2|sort)
чтобы понять как это работает достаточно заменить diff на echo:
echo <(ls dir1|sort) <(ls dir2|sort)
/dev/fd/63 /dev/fd/62
Такой приём обычно полезен в случае когда программа-обработчик не умеет выводить или вводить данные с устройств стандартного ввода-вывода, а так-же в случае когда требуется жонглировать с вводом-выводом нескольких программ одновременно.
ps: внимание файл дескрипторы могут быть не включены в вашей версии bash (насколько я помню отсутствует в каких-то редхатах)