#!/bin/bash ########################################################################## #ldd可以查看程序的库依赖情况,请写一个脚本,将任意一个程序依赖的库收集到一个文件夹. #其中: # 输入参数为:可执行程序(或库)文件(包含路径)和输出文件夹; # 输出收集日志,并将依赖的库收集到指定文件夹。 ########################################################################## ########################################################################## #FileName: GetSoFile.sh #Function: generate so file list. #Create time: 2015.09.15 ######################################################################### module="$1" path="./$2" ldd $module | awk -v path=$path \ ' \ BEGIN{ \ "mkdir -p '$path'" | getline; \ system("echo get lib, the file path is "path""); \ } \ !/not found/{ \ if(NF == 4) \ { \ libpath=$(NF - 1); \ system("cp "libpath" "path""); \ print "cp "libpath" "path""; \ } \ } \ /not found/{ \ lib=$1; \ cmd="locate "lib" | head -n 1"; \ cmd|getline pos; \ cpcmd="cp "pos" "path""; \ cpcmd|getline; \ print "cp "pos" "path""; \ } \ END{ \ system("echo get lib ok."); \ } '