Программист решил сделать собственную обертку над оператором ``
.
Функция exec_and_get_output
должна запускать внешнюю программу
(если программу запустить не удалось, делать die
)
и возвращать ее вывод как массив строк.
Пример кода можно скачать.
Однако функция умирала гораздо чаще, чем предполагал программист.
Например, при выполнении безобидных поисков пакетов с помощью apt-cache search
.
Например, при поиске несуществующих пакетов.
Или когда find
ничего не находит.
То есть всегда, когда внешняя программа ничего не выводит.
Результат выполнения оператора обратных кавычек ``
– вывод вызванной внешней программы.
Если программа ничего не печатала, то результат будет пустой строкой, то есть ложным значением,
и сработает die
.
Поэтому exec_and_get_output
выполняет die
всякий раз, когда не получает никакого вывода
от внешней программы.
Однако отсутствие вывода не обязательно означает ошибку.
Во всяком случае, пустой вывод следовало бы обрабатывать снаружи exec_and_get_output
в соответствии с логикой вызывающего кода.