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

前端之家收集整理的这篇文章主要介绍了copy命令及库文件至/mnt/sysroot/目录shell脚本前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
#!/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
原文链接:https://www.f2er.com/bash/392990.html

猜你在找的Bash相关文章