PREFIX="" # Создаём временный файл TMP=`mktemp` list_libs() { if grep ${1} $TMP &>/dev/null; then return 1; fi # Вывод анализируемой библиотеки echo "${PREFIX}${1}" >> $TMP local OLDPREFIX=${PREFIX} PREFIX="${PREFIX} " # Получение списка зависимостей local -a libs=(`ldd $1 | grep "\.so" |sed -e '/=>/s/.*=> \(.*\)/\1/ ; s/\t*// ; s/ (.*)//'`) if [ "${libs[*]}" = "statically linked" ]; then # У статической библиотеки зависимостей нет ;-) return 2 fi local i=0 while [ \( -n "${libs[$i]}" \) ]; do # Рекурсивный вызов для каждой библиотеки list_libs ${libs[$i]} ((i++)); done PREFIX=${OLDPREFIX} } # Главный цикл for arg in $@; do list_libs $arg done cat $TMP rm -f $TMP