copy命令及库文件至/mnt/sysroot/目录shell脚本
发布时间:2020-12-15 16:59:07 所属栏目:安全 来源:网络整理
导读:#!/bin/bash##获取目标目录target=/mnt/sysroot#命令copy函数cmndcopy(){#假如命令不存在,return1if!which$1/dev/null;thenreturn1fi#获取命令决定路径cmnd=$(which--skip-alias$1)#获取命令目录名cmndpath=$(dirname$cmnd)#判断命令目录名是否存在,否,则
#!/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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |