#!/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."); } '