経験不足の一部のユーザーでも、次のことを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について何も知りませんでした。スクラッチベースのリスト(したがってあなたの好み)に慣れるのはプログラマーの仕事ですが、エンドユーザーには慣れていません。