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てEnterキーを押します。 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}..."

おすすめ記事