awk高速コピーlddライブラリファイル依存性の巧みな使用

1920 ワード

SHELLスクリプトを書き、依存するダイナミックライブラリを自動的にコピーします.touch test.sh
dep=$( ldd $1 | awk '{if (match($3,"so")){print $3}}' )  
cp -L -n $dep $2   

-n:don't overwrite、既存ファイル-L:follow symbolic link in sourceを上書きせず、ソフトリンクの場合はコピーソースリンクファイル
ここでawkはデフォルトのスペース分割子を使用してldd出力の各行を分割し、分割された3番目のパラメータに「so」が含まれている場合はdep変数に値を割り当てます.
ネット上でもっと多く見られるのは以下のバージョンです.
dep=$( ldd $1 | awk '{if (match($3,"/")){print $3}}' )  
cp -L -n $dep $2