如何从Bash中的变量读取文件扩展名?
问题描述:
我正在为我的Android实用程序的主要更新,你在恢复中闪烁,它使用Bash脚本...问题是,我对bash一无所知!如何从Bash中的变量读取文件扩展名?
现在,我有两个文件... A 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
添加并从系统中删除,但bootanimation .zip
不会被删除。
答
您应该使用后缀截断来执行此操作。
随着${your_var_name%.zip}
你会得到.zip
之后的所有东西,包括邮编,如果有的话。
您可以在终端试试这个:
a="toto.zip"
echo ${a%.zip} #= > toto
你会得到多大的可能性更多的细节在这里:http://www.tldp.org/LDP/abs/html/parameter-substitution.html