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}..."

관련 정보