CRUX
# pkginfo -i | egrep '(pcre|grep)'
grep 3.4-2
libpcre 8.44-1
# ldd /sbin/switch_root | grep -o "/.* "
/lib/libc.so.6
/lib/ld-linux-x86-64.so.2
Manjaro
# pacman -Q | egrep "(pcre|grep)"
grep 3.4-1
pcre 8.44-1
pcre2 10.35-1
# ldd /sbin/switch_root | grep -o "/.* "
/usr/lib/libc.so
/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2
Вот и как писать после этого на POSIX shell. -_-
В итоге сделал так.
lddtree() {
if test "$1" = ""; then
return 0
fi
echo "$1"
for dep in $(ldd "$1" | grep "=> /" | cut -d " " -f 3); do
lddtree "$dep"
done
}
Потому как предыдущий вариант, с grep -o "/.* "
, радостно сообщал:
ldd: ./=>: Нет такого файла или каталога
=>
Failure []
/lib64/ld-linux-x86-64.so.2
Failure []
/usr/bin/mv
Failure []
/usr/lib64/ld-linux-x86-64.so.2
Failure []
/usr/lib/ld-linux-x86-64.so.2
Failure []
/usr/lib/libacl.so.1
Failure []
/usr/lib/libattr.so.1
Failure []
/usr/lib/libc.so.6
Failure []