경험이 부족한 일부 사용자라도 bash
다음 사실을 동시에 알 수 있습니다.bash
정렬항상 인덱스 0에서 시작합니다. 그러나 select
다음 예와 같이 항상 원하는 대로 작업을 수행하세요.
#!/bin/bash
choices=(NONE nyc la chicago little_rock miami)
select choice in ${choices[@]}; do
[[ " ${choices[*]} " == *" $choice "* ]] && break
done
echo "Choice was: $choice ; first element is ${choices[0]}"
출력은 다음과 같습니다
1) NONE
2) nyc
... etc. ...
하지만 ${choices[0]}
그래도 "NONE"이 출력됩니다! 그래서 강제 select
로 시작하게 하는 방법이 있어야 한다고 생각합니다.인덱스 0, 1이 아닙니다.
(이것의 더 깊은 의미에 대해 질문하는 사람이 있는 경우: 실제로는 9개 이상의 옵션 처리를 자주 건너뛰어야 하는 경우(메뉴에서 "0"으로 설정하는 것이 좋음) 편의상 최소한- 옵션을 "10"으로 사용했으므로 거의 모든 경우에 숫자만 입력하면 됩니다.
답변1
메뉴에 항목 번호가 표시되는 기준을 변경할 수 있는 옵션은 없습니다. 귀하의 질문에서 ".. 경험이 부족한 일부 bash 사용자라도 ...인덱스 0에 대해 알게 될 것입니다"라고 언급하셨습니다.
예, 맞습니다. 하지만 select
메뉴는 그런 목적으로 만들어진 것이 아닙니다.배쉬 사용자("프로그래머" 읽기) - 그 목적은최종 사용자(GUI 이전 시절) 그들은 일반적으로 bash에 대해 아무것도 몰랐습니다. 스크래치 기반 목록(따라서 귀하의 선호도)에 익숙해지는 것은 프로그래머의 일이지만 최종 사용자에게는 익숙하지 않습니다.