日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux学习之路之使用脚本来复制二进制程序和所需的库文件

發布時間:2025/3/17 linux 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux学习之路之使用脚本来复制二进制程序和所需的库文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先介紹bash的特殊語法

${parameter#*word}

其中parameter為變量,word為分隔符,表示從變量最邊左字符開始到第一匹配到分隔符(word)之間的字符串都去掉

${parameter##*word}:表示從變量最左邊字符開始到最后一次匹配到該分隔符之間的字符串都去掉

注意:其中變量不要加$符號


當*在分隔符(word)前面時,表示從左開始匹配

當*在分隔符(word)后面時,表示從右開始匹配

${parameter%word*}:表示從最右邊字符開始到第一次匹配到的分隔符之間的字符串全部刪除

${parameter%%word*}:表示從最右邊字符開始到最后一次匹配到的分隔符之間的字符串全部刪除


如何使用腳本來完成二進制程序和所需庫文件的復制

#!/bin/bash
DEST=/mnt/sysroot
#復制庫文件
LIBCP() {
??????? LIBDIR=${1%/*}
??????? #判斷目錄是否存在,不存在則創建目錄
??????? [ ! -d $DEST$LIBDIR ] && mkdir -p $DEST$LIBDIR
??????? #判斷庫文件是否存在,不存在則復制庫文件到指定目錄下
??????? [ ! -e $DEST${1} ] && cp ${1}? $DEST$LIBDIR && echo "copy lib $1 finished "

}
#復制二進制程序
CMDCP() {

??????? #找到某個命令的二進制文件
??????? CMD=`which $1 | grep -v '^alias*' | grep -o '[^[:space:]]\{1,\}'`

????????#取二進制程序所在的目錄
??????? CMDDIR=${CMD%/*}
??????? #判斷這個二進制文件所在目錄是否存在,不存在則創建
??????? [ ! -d $DEST$CMDDIR ] && mkdir -p $DEST$CMDDIR
??????? #判斷指定目錄下是否存在該二進制程序,不存在則復制
??????? [ ! -e $DEST$CMD ] && cp $CMD $DEST$CMDDIR && echo "copy command $CMD finished"
??????? #通過ldd命令來找到某個二進制文件所需要的庫文件,并生成列表供for循環使用
??????? for BINARY in `ldd $CMD | grep -o --color '/.*lib\(64\)\?/[^[:space:]]\{1,\}' `;do

????????????????#調用LIBCP函數復制二進制程序的庫文件
??????????????? LIBCP $BINARY
??????? done
??????? }
#提醒用戶輸入命令
read -p 'Pelase input command:' COM
#判斷用戶輸入的命令是否正確
until [ $COM == 'q' ];do
??????? ! which $COM &> /dev/null && echo 'command Wrong!' && read -p 'input again:' COM \
??????? && continue
??????? CMDCP $COM
??????? read -p 'Pelase input command continue:' COM
done

轉載于:https://blog.51cto.com/xslwahaha/1532529

總結

以上是生活随笔為你收集整理的linux学习之路之使用脚本来复制二进制程序和所需的库文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。