如何从 Bash 中的变量读取文件扩展名



我正在为我的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

相关内容

  • 没有找到相关文章

最新更新