если тест! $ (которые заваривают); то ...
, который brew
, ваш $ PATH
будет искать исполняемый файл с именем brew
. Если он найден, имя выводится на стандартный вывод. Если ничего не найдено, на стандартный поток вывода выводится сообщение об ошибке. (Некоторые оболочки предоставляют встроенную команду , которая
также сообщает о встроенных функциях и функциях оболочки, зарезервированных словах, .... Например zsh
.) $ (...)
] захватывает stdout (но не stderr) любых команд оболочки ...
и помещает его в командную строку в качестве аргумента (ов). тест! ...
возвращает инвертированный код возврата теста ...
. Это способ теста
отрицать выражение. test ...
(без каких-либо параметров в части ...
) просто проверяет, не является ли часть ...
пустой строкой. Результат : , который
используется для поиска исполняемого файла с именем brew
. Полученный путь или пустая строка помещается в командную строку в качестве аргумента test!
, который проверяет, является ли этот аргумент пустой строкой, и возвращает 0
(истина).
если! который варят> / dev / null; затем ...
Здесь варево
такое же, как указано выше. Если который
находит исполняемый файл, он не только печатает имя, но и возвращает код 0
(истина). Если ничего не находит, он выводит сообщение об ошибке и возвращает другой код (false). Этот код инвертируется оболочкой из-за !
перед командой ( 0
-> 1
, все остальное -> 0
). Это то, о чем заботится if
. Поскольку пользователю не нужен фактический путь к brew
, стандартный вывод , который
перенаправлен на / dev / null
.
В обоих случаях stderr , который
не перенаправляется и должен быть виден на терминале.
Я не тестировал его, но предполагаю, что вторая форма работает быстрее, так как запускает только один процесс / встроенный.Но обе команды выполняют перенаправление: вторая явно на / dev / null
, первая менее очевидна (поначалу) из-за захвата вывода , который
с помощью $ (. ..)
. Вы можете приблизительно сравнить скорость с чем-то вроде comp
функции, которую я использую .
Существуют страницы руководства для , на которых
и тестируются
. На странице руководства оболочки ( sh
, ksh
, bash
, zsh
) есть раздел о перенаправлении и подстановке команд, как так же, как и на встроенных командах (не только , который
, но также test
часто реализуется как встроенный).
Судя по всему, производитель уже выпустил официальный выпуск драйвера, но, насколько я понимаю, никто еще не интегрировал его с Linux, чтобы заставить его работать. URL-адрес исходного кода — https://github.com/fresco-fl2000/fl2000.
Похоже, ваш вариант использования теперь поддерживается :https://github.com/fresco-fl2000/fl2000
Он не взаимодействует с/под X, но может отображать контент.