Shell工具脚本-生成文件&下载资源并解析

这篇具有很好参考价值的文章主要介绍了Shell工具脚本-生成文件&下载资源并解析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

主要包含功能如下:

1.自动生成文件

2.下载文件并解析

#  @Author: lvzhihong

#  @Date: 2023-08-29 08:43:41

#! /bin/bash

#config

project_code=("23861"  "23862" "23863")

project_out_root="aon_project_output"

project_apk_url="xxx/2023082904130232_APP_INFO_repo_10010111.xml";

declare -A aon_module_feature_map

aon_module_feature_map["gaze"]="oplus.hardware.aon_enable,oplus.software.aon_ant_peep_disable"

aon_module_feature_map["antipeep"]="oplus.hardware.aon_enable,oplus.software.aon_auto_none_screen_off_disable"

aon_module_feature_map["gesture_slide"]="oplus.software.aon_enable,oplus.software.aon_gestureui_enable"

aon_module_feature_map["gesture_phone"]="oplus.software.aon_enable,oplus.software.aon_phone_enable,oplus.software.aon_phone_camera_gesture_recognition,oplus.software.aon_phone_mute"

aon_module_feature_map["gesture_press"]="oplus.software.aon_enable,oplus.software.aon_gesture_press"

aon_module_feature_map["distance"]="oplus.software.aon_distance_detection_enable"

aon_module_feature_map["pose"]="oplus.software.aon_pose_detection_enable"

aon_module_feature_map["aod"]="oplus.software.aon_aod_enable"

aon_module_feature_map["explorer"]="oplus.software.aon_explorer_enable"

project_aon_modules_full=("gaze" "antipeep" "gesture_slide"  "gesture_phone" "gesture_press"  "distance"  "pose"  "aod" "explorer")

project_aon_features_full=("oplus.hardware.aon_enable" "oplus.software.aon_ant_peep_disable" "oplus.software.aon_auto_none_screen_off_disable" "oplus.software.aon_enable" "oplus.software.aon_phone_enable" "oplus.software.aon_phone_camera_gesture_recognition"

                            "oplus.software.aon_phone_mute" "oplus.software.aon_gestureui_enable" "oplus.software.aon_gesture_press" "oplus.software.aon_aod_enable" "oplus.software.aon_pose_detection_enable" "oplus.software.aon_distance_detection_enable" "oplus.software.aon_explorer_enable")

aon_feature_file_name="aon_project_output/oplus.product.feature_aon.xml"


 

#function

function generate_aon_feature_file(){

    rm ${aon_feature_file_name}

    aon_modules=$@

    echo "aon_modules="${aon_modules}

    config_feature="<oplus-config>"

    echo ${config_feature}>>${aon_feature_file_name}

    for module in ${aon_modules[*]}

    do

        echo "module="${module}

        getFeatureConfigItem $module

    done

    if grep  ${project_aon_features_full[0]} ${aon_feature_file_name};then

        if echo ${aon_modules}|grep ${project_aon_modules_full[0]};then

        #with gaze

            sed -i "/${project_aon_features_full[2]}/d" ${aon_feature_file_name}

        fi

        if echo ${aon_modules}|grep ${project_aon_modules_full[1]};then

        #with antipeep

            sed -i "/${project_aon_features_full[1]}/d" ${aon_feature_file_name}

        fi

    fi

    echo "</oplus-config>">>${aon_feature_file_name}

}    

function getFeatureConfigItem(){

    echo "getFeatureConfigItem:"$1

    OLD_IFS="$IFS"

    IFS=","

    array=(${aon_module_feature_map[$1]})

    IFS="$OLD_IFS"

    for featureItem in ${array[*]}

    do

        if grep $featureItem  ${aon_feature_file_name};then

            continue

        else

            echo "write file:"${featureItem}

            cat >> ./${aon_feature_file_name} << EOF

    <oplus-feature name="${featureItem}" />

EOF

            echo "write file done"

        fi

    done

}

function downloadProjectInfo(){

     # 提取文件名

    filename=$(basename "${project_apk_url}")

   

    # 构建保存路径

    save_path="${project_out_root}/${filename}"

    wget -q "${project_apk_url}" -O "${save_path}"

    # 检查下载是否成功

    if [ $? -eq 0 ]; then

        echo "文件下载成功: $filename"

    else

        echo "文件下载失败: $filename"

    fi

    branch=`awk '/oplus\/pipeline\/product\/multimedia/ {split($0,arr," ");for(i in arr){if(match(arr[i],"upstream")){split(arr[i],array, "="); print array[2];}}}' ${save_path}`

    echo ${branch}

}



 

# 参数:项目要上的功能

# 目前支持功能配置如下

#project_aon_modules_full=("gaze" "antipeep" "gesture_slide"  "gesture_phone" "gesture_press"  "distance"  "pose"  "aod" "explorer")

mkdir ${project_out_root}

rf -rf ${project_out_root}

generate_aon_feature_file "gaze" "antipeep" "gesture_phone" "distance" "pose"

downloadProjectInfo文章来源地址https://www.toymoban.com/news/detail-681789.html

到了这里,关于Shell工具脚本-生成文件&下载资源并解析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • .NET Framework 工具 Resgen.exe(资源文件生成器)

    在命令窗口输入以下指令 提示时继续输入 您可以选择重新生成解决方案,VS会自动执行Resgen.exe 将文本(.txt 或 .restext)文件和基于 XML 的资源格式 (.resx) 文件转换为公共语言运行时二进制 (.resources) 文件,后者可嵌入到运行时二进制可执行文件或附属程序集中。 有关详细信息

    2024年02月05日
    浏览(77)
  • GameFramework:打包资源,打随app发布包,打包生成文件夹说明,上传资源至服务器,下载资源,GameFreamworkList.dat 与GameFrameworkVersion.dat

    左边为ab包,中间为ab包中内容,右边为项目中资源文件 点击save,SaveConfiguration,保存打包关系到ResourceCollection.xml中 是否使用文件系统,只能在xml中手动配置,代表下载完后会把几个零散的ab文件合成一个文件 1、AssetBundle 列表 AssetBundle列表(AssetBundle List)列出了项目中包含

    2023年04月08日
    浏览(59)
  • shell脚本解析 01

    一、shell 概述         1.shell 的两层含义: 既是一种应用程序,又是一种程序设计语言                 a.作为应用程序: 交互式地解释、执行用户输入的命令,将用户的操作翻译成机器可以识别的语言,完成相应功能。称之为 shell 命令解析器。shell 是用户和 Linu

    2024年02月09日
    浏览(27)
  • 谷歌chrome浏览器所有历史版本下载及selenium自动化控制插件资源分享

    使用python + selenium做网页自动化开发的小伙伴经常需要用到google chrome浏览器以及chromedriver插件。     谷歌浏览器所有历史版本下载链接: chrome历史版本,点击下载 chromedriver插件下载地址: 下载链接1:点击下载 下载链接2:点击下载 chromedriver插件与浏览器版本有对应关系,

    2024年02月14日
    浏览(53)
  • shell脚本文本处理工具

    声明: 以下内容为个人笔记,内容不完全正确,请谨慎参考。 cut: cut 工作是“剪”,具体来说就是在文件中负责剪切数据。cut 命令从文件的每个行剪切字节、字符和字段输出。 1、基本语法: cut [选项参数] filename 说明:默认分隔符是副表符 2、选项参数说明 选项参数:1)

    2024年04月25日
    浏览(29)
  • Chrome 插件 V3 版本 Manifest.json 中的内容脚本(Content Scripts)解析

    指定在用户打开某些网页时要使用的 JavaScript 或 CSS 文件。 内容脚本是在网页环境中运行的文件。通过使用标准文档对象模型 ( DOM ),开发者能够读取浏览器所访问网页的详情、更改这些网页,并将信息传递给其父级扩展程序。 内容脚本在声明扩展程序文件为可通过网络访问

    2024年01月19日
    浏览(36)
  • Linux shell jq工具(shell读取json、shell脚本读取json、shell json、json工具)

    在线安装 离线安装 如果你的服务器没有联网,则无法使用包管理器来安装 jq 工具。不过,你仍然可以通过以下步骤手动安装 jq 工具: 在另一台联网的计算机上下载 jq 的二进制文件。可以在 jq 的官方网站上找到适合你服务器架构的二进制文件。例如,如果你的服务器是 x

    2024年02月11日
    浏览(33)
  • Shell脚本编程实践——第3关:使用Shell脚本创建文件目录

    任务描述 本关任务:设计一个Shell程序,在/home目录下建立一个userdata目录,在userdata目录下再建立5个目录,即user1~user5,并设置每个目录的权限,其中其他用户的权限为:读;文件所有者的权限为:读、写、执行;文件所有者所在组的权限为:读、执行。 相关知识 为了完成

    2023年04月22日
    浏览(44)
  • android 运行shell 脚本文件或shell命令

    android 运行shell 脚本文件或shell命令 一.运行shell脚本文件 1.test.sh文件内容 #!/bin/bash echo \\\"I am a script\\\" ps 2.将shell文件拷贝到Android设备目录 3.执行脚本文件 Runtime.getRuntime().exec(\\\"sh /sdcard/lilei/test.sh\\\"); 注: 应用需要有存储访问权限,如果shell文件中有文件访问请用绝对路径,否则访问

    2024年03月12日
    浏览(60)
  • 【shell编程入门】stable diffusion webui的webui.sh脚本解析

    通过webui.sh,我们可以在linux系统下安装虚拟环境,并启动stable diffuson webui。 BASH_SOURCE[0] : 这是一个包含当前 Bash 脚本文件名的数组。 ${BASH_SOURCE[0]} 表示当前脚本的文件名。 dirname -- \\\"${BASH_SOURCE[0]}\\\" : dirname 命令用于获取文件路径的目录部分。这里它获取了 ${BASH_SOURCE[0]} 即当前

    2024年01月21日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包