#!/bin/bash ##########################################################################
#ldd可以查看程序的库依赖情况,请写一个脚本,将任意一个程序依赖的库收集到一个文件夹.
#其中:
# 输入参数为:可执行程序(或库)文件(包含路径)和输出文件夹;
# 输出收集日志,并将依赖的库收集到指定文件夹。
########################################################################## ##########################################################################
#FileName: GetSoFile.sh
#Function: generate so file list.
#Create time: 2015.09.
######################################################################### 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 == ) \
{ \
libpath=$(NF - ); \
system("cp "libpath" "path""); \
print "cp "libpath" "path""; \
} \
} \
/not found/{ \
lib=$; \
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."); \
}
'