我正在为我的Android实用程序进行重大更新,您在恢复中刷新并使用Bash Scripting...问题是,我对bash一无所知!
现在,我有两个文件...一个包含变量的common
文件和一个实际保存文件列表的script
文件。
以下是common
脚本的问题部分:
if [ ${android_version} == 5.* ]; then
rm -rf /system/$file_name;
else
if [ -e ${file_name}.* ]; then
rm -rf /system/$file_name;
else
rm -f /system/$file_name.apk;
fi;
fi;
以下是$file_name
的来源示例:
# AOSP
aosp_remove_list="BootAnimation
Browser
...";
BootAnimation_list="media/bootanimation.zip";
Browser_list="app/Browser
app/ChromeBookmarksSyncAdapter";
所以在common
文件中,它看它是否是棒棒糖。如果没有,(这是问题所在),它应该查看各个应用程序列表中的文件名,并查看它是否包含文件扩展名。如果没有,那么它将删除$file_name
+ .apk
。
因此,在上面的示例中,浏览器的文件.apk
从系统中添加和删除,但引导动画.zip
不会被删除。
您可能应该使用后缀截断来执行此操作。
有了${your_var_name%.zip}
,您将在.zip
后乘坐所有东西,包括拉链,当然如果有的话。
您可以在终端中尝试此操作:
a="toto.zip"
echo ${a%.zip} #= > toto
您将在此处获得有关可能性的更多详细信息:http://www.tldp.org/LDP/abs/html/parameter-substitution.html