Попробуйте file -L <library name> | grep shared
, если это дает какой-либо вывод, файл динамически связан. В качестве альтернативы вы можете сделать ldd <library name> | grep 'not a dynamic executable'
, который выдает результат, если он статический. Надеюсь, что это отвечает на ваш вопрос, я бы добавил комментарий к ответу Авиатора, но не могу комментировать (пока).
Опция -L
для файла заставляет файлы разыменовывать символические ссылки, что не является поведением по умолчанию, если POSIXLY_CORRECT не определено (как это имеет место в моей системе).
Пример сценария:
if [ -z "$(file -L | grep shared)" ]; then
echo "not a dynamic lib";
else
echo "dynamic lib";