copy命令及库文件至/mnt/sysroot/目录shell脚本

前端之家收集整理的这篇文章主要介绍了copy命令及库文件至/mnt/sysroot/目录shell脚本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_502_0@#!/bin/bash # #获取目标目录 target=/mnt/sysroot #命令copy函数 cmndcopy(){ #假如命令不存在,return1 if!which$1&>/dev/null;then return1 fi #获取命令决定路径 cmnd=$(which--skip-alias$1) #获取命令目录名 cmndpath=$(dirname$cmnd) #判断命令目录名是否存在,否,则创建 [-d$target/$cmndpath]||mkdir-p$target/$cmndpath #判断命令是否存在,否,则copy [-e$target/$cmnd]||cp$cmnd$target/$cmnd return0 } #库文件copy函数 libcopy(){ #获取文件目录名 libpath=$(dirname$1) #判断库文件目录名是否存在,否,则创建 [-d$target/$libpath]||mkdir-p$target/$libpath #判断库文件是否存在,否,则copy [-e$target/$1]||cp$1$target/$1 } #提示输入要copy的命令,quit可以退出 read-p"Plzenteracommand(quitforquiting):"binary #循环copy命令,遇到quit字符推出循环 until[$binary=="quit"];do #调用命令copy函数 cmndcopy$binary #保存命令copy函数返回值 retval=$? #如果返回值等于0,则 if[$retval-eq0];then #获取命令库文件的路径 binary=$(which--skip-alias$binary) #循环取出库文件路径 forlibin$(ldd$binary|grep-o"/[^[:space:]]*lib[^[:space:]]*");do #调用文件copy函数 libcopy$lib done #如果返回值不为0,则 else #提示命令输入错误,并可以重新输入 read-p"$binaryisnotcorrect,Plzenteragain(quitforquiting):"binary #并提前结束本轮循环 continue fi #再次提示输入要copy的命令,quit可以退出 read-p"Plzenteracommand(quitforquiting):"binary done

猜你在找的Bash相关文章