LINUX SHELL综合案例:指定字串的截取,字串长度,rpath修改

这个脚本的思路是这样的

  • 新的rpath长度不通超过文件已有的rpath
  • 不同库的关键字,可能是RUNPATH,也可能是RPATH
  • 从文件中读取rpath
  • 截取rpath
  • 计算长度
  • 根据长度,使用不同长度的rpath

具体结果

复制代码
function change_rpath()
{
    RPATH01=.
    RPATH07=\$ORIGIN
    RPATH12=\$ORIGIN:/lib
    RPATH30=\$ORIGIN:/lib/aarch64-linux-gnu
    RPATH35=\$ORIGIN:/lib:/lib/aarch64-linux-gnu

    RPATH_INFO=`chrpath ${1}`
#libHpws.Generic.so: RPATH=:/libs
echo ${RPATH_INFO}
    RPATH=`echo ${RPATH_INFO#*RPATH=}`
    if [[ ${RPATH_INFO} == ${RPATH} ]]; then
        RPATH=`echo ${RPATH_INFO#*RUNPATH=}`
    fi

#:/libs
echo ${RPATH}

    length=${#RPATH}
#6
echo ${length}

    if [[ ${length} -ge 35 ]]; then
        RPATH=${RPATH35}
    elif [[ ${length} -ge 30 ]]; then
        RPATH=${RPATH30}
    elif [[ ${length} -ge 12 ]]; then
        RPATH=${RPATH12}
    elif [[ ${length} -ge  7 ]]; then
        RPATH=${RPATH07}
    else
        RPATH=${RPATH01}
    fi
    result=`chrpath -r ${RPATH} ${1}`

    # chrpath ${1}
}
相关推荐
暴富奥利奥6 分钟前
完成docker方式的ros环境配置
linux·学习·docker·容器
秃头菜狗8 分钟前
十四、运行经典案例 wordcount
大数据·linux·hadoop
ManageEngineITSM19 分钟前
IT 服务自动化的时代:让效率与体验共进
运维·数据库·人工智能·自动化·itsm·工单系统
Bug退退退12333 分钟前
Java 网络流式编程
java·服务器·spring·sse
QotomPC38 分钟前
软件定义的理想硬件平台:Qotom Q30900SE/UE系列在AIO服务器与边缘网关中的实践
运维·服务器
望获linux41 分钟前
【实时Linux实战系列】实时系统的可观测性:Prometheus 与 Grafana 集成
大数据·linux·服务器·开发语言·网络·操作系统
捷智算云服务42 分钟前
H200服务器维修服务体系构建:捷智算的全链条保障方案
运维·服务器
hweiyu0043 分钟前
Linux 命令:mount
linux·运维·服务器
zhmy_00643 分钟前
linux 多服务器下目录数据文件实时同步
linux·文件实时同步
AI视觉网奇1 小时前
redis 配置学习笔记
linux·服务器