由appfilter.xml在同目录下生成对应的drawable.xml的termux可执行脚本


以下是一个在 Termux 环境下,根据 `appfilter.xml` 文件在同目录下生成对应的 `drawable.xml` 文件的 Bash 脚本: ```bash #!/bin/bash # 定义输入文件为 appfilter.xml input_file="appfilter.xml" # 定义输出文件为 drawable.xml output_file="drawable.xml" # 检查 appfilter.xml 文件是否存在 if [ ! -f "$input_file" ]; then echo "appfilter.xml 文件不存在,请检查。" exit 1 fi # 开始生成 drawable.xml 文件,添加文件开头的 XML 声明和资源标签 echo '<?xml version="1.0" encoding="utf-8"?>' > "$output_file" echo '<resources>' >> "$output_file" # 从 appfilter.xml 文件中提取 icon 名称,并写入 drawable.xml 文件 grep -o '<item component=".*" drawable="[^"]*"/>' "$input_file" | while read -r line; do # 提取 drawable 属性的值 drawable_name=$(echo "$line" | grep -o 'drawable="[^"]*"' | cut -d'"' -f2) # 生成 drawable.xml 中的一行内容 echo " <item name=\"$drawable_name\" type=\"drawable\" />" >> "$output_file" done # 添加文件结尾的资源标签 echo '</resources>' >> "$output_file" echo "drawable.xml 文件已成功生成。" ``` 代码说明 1. 输入输出文件定义:脚本开始时,定义了输入文件为 `appfilter.xml`,输出文件为 `drawable.xml`。 2. 文件检查:检查 `appfilter.xml` 文件是否存在,如果不存在则输出错误信息并退出脚本。 3. 文件开头部分生成:向 `drawable.xml` 文件中写入 XML 声明和 `<resources>` 标签。 4. 提取 drawable 名称:使用 `grep` 命令从 `appfilter.xml` 文件中提取包含 `drawable` 属性的 `<item>` 标签,然后使用 `cut` 命令提取 `drawable` 属性的值。 5. 生成 drawable.xml 内容:将提取的 `drawable` 名称格式化为 `<item>` 标签,并写入 `drawable.xml` 文件。 6. 文件结尾部分生成:向 `drawable.xml` 文件中写入 `</resources>` 标签。 使用方法 1. 将上述脚本保存为一个文件,例如 `generate_drawable.sh`。 2. 给脚本添加执行权限: ```bash chmod +x generate_drawable.sh ``` 3. 在包含 `appfilter.xml` 文件的目录下运行脚本: ```bash ./generate_drawable.sh ``` 需要小心的地方 我在以往的开发过程中,碰到过以下几点需要格外小心处理的地方: 1. 文件路径问题:确保 `appfilter.xml` 文件和脚本在同一目录下,或者根据实际情况修改脚本中的文件路径。 2. XML 格式问题:如果 `appfilter.xml` 文件的格式不符合预期,例如 `<item>` 标签的属性顺序或格式不同,可能会导致脚本无法正确提取 `drawable` 名称。 3. 文件覆盖问题:运行脚本时,`drawable.xml` 文件会被覆盖,如果该文件已经存在且包含重要内容,请提前备份。 [2025-08-27 07:59:45 | AI写代码神器 | 766点数解答]
- 请求 URL http://192.168.1.254/incoming/RouterBakCfgUpload.cfg 请求方法 POST 状态代码 200 OK 远程地址 192.168.1.254:80 引用站点策略 strict-origin-when-cross-origin HTTP/1.1 200 OK Server: Router Connection: close WWW-Authenticate: Basic realm="150Mbps Wireless N Nano Router DJ702" Content-Type: text/html POST /incoming/RouterBakCfgUpload.cfg HTTP/1.1 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Accept-Encoding: gzip, d(1131点数解答 | 2025-06-02 12:46:09)108
- 作为linux开发,将 /test/a 目录建立软链接到 /test/b 目录,请写出完整的操作命令 ?(194点数解答 | 2023-11-09 18:48:38)222
- 创建/mnt/temp/dirxz(xz为你的姓名拼音的第一个字母)目录。将该目录属性设置为userxz:group+学号. 在该目录下新建文件file1,文件权限设置为对所有者和所属组用户可读可写可执行,对其他人可读可执行。(251点数解答 | 2024-12-17 14:20:25)157
- 数组对象的 shape 属性可用于查看维数,返回一个包含数组维度的元组。元组的长度即维度,对应 ndim 属性(秩)。 使用 shape 属性可以方便地查看数组维度信息。 任务要求 请输出给定二维数组的维数,行数以及列数,并将其调整为2行6列的二维数组并输出(142点数解答 | 2024-10-12 21:48:05)184
- 数组对象的 shape 属性可用于查看维数,返回一个包含数组维度的元组。元组的长度即维度,对应 ndim 属性(秩)。 使用 shape 属性可以方便地查看数组维度信息。 任务要求 请输出给定二维数组的维数,行数以及列数,并将其调整为2行6列的二维数组并输出(451点数解答 | 2024-10-12 21:54:35)183
- #define USE_FC16_HW 1 #include <MD_MAX72xx.h> #include <SPI.h> #define FC16_HW 1 #define HARDWARE_TYPE FC16_HW #define MAX_DEVICES 1 #define CS_PIN 12 // D8 对应 GPIO15 MD_MAX72XX mx = MD_MAX72XX(HARDWARE_TYPE, CS_PIN, MAX_DEVICES); // 蛇定义 #define WIDTH 8 #define HEIGHT 8 int snakeX[64], snakeY[64]; int snakeLength = 3; int dirX = 1, dirY = 0; int foodX = 3, foodY = 3; // 按键 A0 #define KEY_PIN A0 void setup() { mx.begin(); mx.clear(); randomSeed(analogRead(0)); // 初始化蛇身体 for (int i(1917点数解答 | 2025-07-23 14:49:18)84
- // #define USE_FC16_HW 1 // #include <MD_MAX72xx.h> // #include <SPI.h> // #define FC16_HW 1 // #define HARDWARE_TYPE FC16_HW // #define MAX_DEVICES 1 // #define CS_PIN 12 // D8 对应 GPIO15 // MD_MAX72XX mx = MD_MAX72XX(HARDWARE_TYPE, CS_PIN, MAX_DEVICES); // // 蛇定义 // #define WIDTH 8 // #define HEIGHT 8 // int snakeX[64], snakeY[64]; // int snakeLength = 3; // int dirX = 1, dirY = 0; // int foodX = 3, foodY = 3; // // 按键 A0 // #define KEY_PIN A0 // void setup() { // mx.begin(); // mx.cle(1329点数解答 | 2025-07-23 15:07:45)88
- 作为**工程师,你如何调试 loadrunner 脚本?(463点数解答 | 2023-11-09 18:25:48)243
- 作为**工程师,jmeter中的http代理服务器是什么?如何使用http代理服务器录制**脚本?(371点数解答 | 2023-11-09 18:26:54)219
- linux if条件 判断/home/test.txt文件是否存在(脚本)(356点数解答 | 2024-11-16 16:42:28)194
- linux if条件 判断/home/test.txt文件是否存在(脚本)(347点数解答 | 2024-11-16 16:45:35)183
- photoshop 增加颜色 脚本(303点数解答 | 2025-03-11 14:42:50)172