Bash Shell - select로 선택 메뉴 구현

Bash shell에서 select 명령어를 사용하여 아래와 같이 사용자에게 선택할 수 있는 메뉴를 보여주고 선택한 것을 입력 받을 수 있습니다.

1) Apple
2) Wiki
3) Melon
4) Grape
Please select one: 1

Syntax

syntax는 다음과 같습니다. PS3는 사용자에게 선택을 요청하는 메시지가 됩니다. select 키워드에 옵션을 나열하고, 사용자가 선택한 아이템이 val에 입력됩니다.

#!/bin/bash

PS3='<Message>:'

select val in "Option1" "Option2" "Option3" ...
do
  echo "<Result>: $val"
  break
done

gnu - bash 페이지에서 PS3 변수는 select 명령어의 프롬프트 메시지로 사용된다고 합니다.

Example 1

다음 예제는 사용자에게 선택할 수 있는 옵션을 보여주고 사용자로부터 선택을 입력받습니다.

#!/bin/bash

PS3='Please Select one: '

select fruit in "Apple" "Wiki" "Melon" "Grape"
do
  echo "The one you have selected is: $fruit"
  break  
done

exit 0

Output:

$ bash example.sh
1) Apple
2) Wiki
3) Melon
4) Grape
Please Select one: 1
The one you have selected is: Apple

Example 2

select 명령어의 프롬프트 메시지로 사용되는 PS3 변수가 설정되지 않으면 아래와 같이 #?으로 출력됩니다.

#!/bin/bash

select fruit in "Apple" "Wiki" "Melon" "Grape"
do
  echo "The one you have selected is: $fruit"
  break  
done

exit 0

Output:

$ bash example.sh
1) Apple
2) Wiki
3) Melon
4) Grape
#? 1
The one you have selected is: Apple
Loading script...
codechachaCopyright ©2019 codechacha