我正在为我的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
文件中,它会查看它是否是Lollipop。如果没有,(这是问题)它应该从各个应用程序列表中查看文件名,看它是否包含文件扩展名。如果它没有,那么它将删除$file_name
+ .apk
。
因此,在上面的示例中,浏览器的文件会从系统中添加并删除.apk
,但不会删除bootanimation .zip
。
答案 0 :(得分:1)
您应该使用后缀截断来执行此操作。
使用${your_var_name%.zip}
,您可以在.zip
包括拉链后获取所有内容(如果有的话)。
您可以在终端中尝试:
a="toto.zip"
echo ${a%.zip} #= > toto
您可以在此处获得有关可能性的更多详细信息:http://www.tldp.org/LDP/abs/html/parameter-substitution.html