パス内のディレクトリを読み取り、ユーザーに魔女ディレクトリの選択を求めるスクリプトを作成しています。これまでのスクリプトは次のようになります。
select choises in ${list_files[@]}; do
if CONTAINS_ELEMENT $choises "${list_files[@]}"; then
break
else
echo "invalid choise (PS use the ID numbers)! Try again:"
fi
done
「CONTAINS_ELEMENT」は、変数 $choises が list_files 配列のメンバーであるかどうかをチェックする関数です。このスクリプトは問題なく動作し、出力は次のようになります。
1) first_folder
2) second_folder
3) yet_another_folder
また、ユーザーは、対応する ID 値 (つまり、「second_folder」の場合は「2」) を入力して、witch フォルダーを選択できます。
私が苦労しているのはこれです:提供された回答が正しい番号または正しいファイル名であるかどうかを確認する方法はありますか? また、ファイル名を手動で書き込める場合、このスクリプトで名前補完を実装する方法はありますか?
select への実際の返信は変数 $REPLY に保持されているため、$choises と $REPLY の両方をチェックする必要があります。完了メカニズムは、私が推測するよりもはるかにトリッキーです..
ここで良い提案はありますか?これらの機能を利用するのを手伝ってくれたら、とてもクールです!!