if the-command | grep '^'; then
echo the-command output was not empty
fi
(обратите внимание, что поведение будет варьироваться через grep
реализации, если вывод the-command
не текст (содержит символы NUL, не заканчивается в символе новой строки или имеет неправильно длинные линии).
Также проверять статус выхода the-command
, Вы могли использовать pipefail
опция, доступная во многих оболочках (удар, ksh93, zsh, yash, mksh, по крайней мере):
if (set -o pipefail; the-command | grep '^'); then
echo the-command was successful and its output was not empty
fi
Для работы с нетекстовыми данными можно заменить grep '^'
с:
PERLIO=:unix perl -pe 'BEGIN{$/=\65536} END{exit!$.}'
Обратите внимание на те некоторые изменения команд их поведение вывода, когда их stdout не является оконечным устройством (здесь измененный на канал), так, чтобы мог все еще иметь эффект на вывод.
Вы пытаетесь автоматически добавить soname Oracle библиотека как Provide: этого пакета?
Самый простой способ - просто ввести в Provides: прямо в файле * .spec.
Если вы хотите автоматизировать извлечение, вы можете использовать rpmdeps для извлеките зависимости soname следующим образом:
$ echo /lib64/libpopt.so.0.0.0 | /usr/lib/rpm/rpmdeps -P
libpopt.so.0()(64bit)
libpopt.so.0(LIBPOPT_0)(64bit)
Выполните указанное выше в канале% (…), как это в вашем файле * .spec:
Provides: %(echo /lib64/libpopt.so.0.0.0 | /usr/lib/rpm/rpmdeps -P)
Измените пути к вашим библиотекам Oracle соответствующим образом.