运行 bash 脚本中的 apktool
Running apktool in a bash script
我正在尝试编写一个 bash 脚本,使用 apktool 反编译多个 .apk 文件。每个 apk 文件都位于示例文件夹的子目录中。
#!bin/bash
for item in $(ls samples);
do
for apk in $(ls "samples/$item");
do
echo ./apktool/apktool d "./samples/$item$apk"
$(./apktool/apktool d "./samples/$item$apk")
done
done
当我 运行 脚本时,我得到以下输出:
./apktool/apktool d ./samples/ADRD/53dc.apk*
Input file (./samples/ADRD/53dc.apk*) was not found or was not readable.
输入文件错误消息是 apktool 找不到文件时的标准。但是,如果我 运行 在终端中执行以下命令,apktool 将正常工作。
./apktool/apktool d ./samples/ADRD/53dc.apk*
我已经为所有用户将示例文件夹中所有文件的权限更改为 rw。我也尝试过将 sudo 与 shell 脚本一起使用,但这会导致脚本挂起。但是,当我在命令行中将 sudo 与 apktool 一起使用时,它也会挂起。因此,我不确定将 sudo 与 apktool 一起使用是否可行。
感谢任何帮助,谢谢。
所以它看起来像这样 ls
为您提供了在 apk 文件名末尾附加星号 * 的输出,因为该文件是可执行文件。
for apk in $(ls "samples/$item");
这不是 ls
的默认行为,你得到这个可能是因为你将 ls
别名为 ls -F
或类似的别名。要绕过别名,请按以下方式重写该行:
for apk in $(\ls "samples/$item");
注意我在此处添加的 \。
顺便说一句,apk文件是可执行的正常吗?也许你可以删除可执行位:
find samples -name '*.apk' -exec chmod -x {} \;
另外,也许你的脚本可以用这个衬里代替:
find samples -name '*.apk' -exec ./apktool/apktool d {} \;
请注意,这并不完全相同,因为它可能比两个目录更深。如果您需要限制深度,也可以,请参阅 man find
我正在尝试编写一个 bash 脚本,使用 apktool 反编译多个 .apk 文件。每个 apk 文件都位于示例文件夹的子目录中。
#!bin/bash
for item in $(ls samples);
do
for apk in $(ls "samples/$item");
do
echo ./apktool/apktool d "./samples/$item$apk"
$(./apktool/apktool d "./samples/$item$apk")
done
done
当我 运行 脚本时,我得到以下输出:
./apktool/apktool d ./samples/ADRD/53dc.apk*
Input file (./samples/ADRD/53dc.apk*) was not found or was not readable.
输入文件错误消息是 apktool 找不到文件时的标准。但是,如果我 运行 在终端中执行以下命令,apktool 将正常工作。
./apktool/apktool d ./samples/ADRD/53dc.apk*
我已经为所有用户将示例文件夹中所有文件的权限更改为 rw。我也尝试过将 sudo 与 shell 脚本一起使用,但这会导致脚本挂起。但是,当我在命令行中将 sudo 与 apktool 一起使用时,它也会挂起。因此,我不确定将 sudo 与 apktool 一起使用是否可行。
感谢任何帮助,谢谢。
所以它看起来像这样 ls
为您提供了在 apk 文件名末尾附加星号 * 的输出,因为该文件是可执行文件。
for apk in $(ls "samples/$item");
这不是 ls
的默认行为,你得到这个可能是因为你将 ls
别名为 ls -F
或类似的别名。要绕过别名,请按以下方式重写该行:
for apk in $(\ls "samples/$item");
注意我在此处添加的 \。
顺便说一句,apk文件是可执行的正常吗?也许你可以删除可执行位:
find samples -name '*.apk' -exec chmod -x {} \;
另外,也许你的脚本可以用这个衬里代替:
find samples -name '*.apk' -exec ./apktool/apktool d {} \;
请注意,这并不完全相同,因为它可能比两个目录更深。如果您需要限制深度,也可以,请参阅 man find