Bash - 如何根据目录中的 zip 文件数量来选择 zip 文件的菜单?

Bash - 如何根据目录中的 zip 文件数量来选择 zip 文件的菜单?

我正在做一个主题工具脚本。我想在目录中制作一个zip文件(zip文件包含主题)的选择菜单,然后用户将选择他们想要安装的zip文件

示例:在/theme/zipfiles/中有theme1.zip、theme2.zip、theme3.zip(用户可以添加更多主题zip文件)

我想在脚本中列出这些 zip 文件,如下所示:

Choose a theme zip file to install:
1) theme1.zip
2) theme2.zip
3) theme3.zip
# When users add more zip files and this menu will display more

然后我输入1并回车。 theme1.zip 应该正在安装

答案1

你可以使用select.首先,设置 $PS3 作为提示符,然后select像循环一样使用,当你有正确的数据时中断以获得所需的信息:

PS3="Choose a theme zip file to install:"
select theme_file in *.zip; do
    [[ -f "$theme_file" ]] && break
done

echo "Installing ${theme_file%.zip} from ${theme_file}..."

相关内容