ローカル マシンにある開発サイトで一連の操作を実行するために、スクリプトを作成しています。これは、"/var/www/" 内のすべてのフォルダー (Web サイト) を一覧表示し、ユーザーが 1 つを選択して後続の操作を実行できるようにするというものです。このスクリプトのインスピレーションをここで見つけました。
私は bash を学び始めたばかりなので、コードに冒とく的な表現があることを期待してください。
これは私が立ち往生しているところです:
#!/bin/bash
cd /var/www
options=( $(find . -maxdepth 1 -type d -printf '%P\n') )
options[$[${#options[@]}+1]]="type a new site"
title="Website developing script"
prompt="Choose the site:"
echo "$title"
PS3="$prompt "
select opt in "${options[@]}" "Quit"; do
case "$REPLY" in
# so far so good, all folders are properly listed as options
# the answer, I guess, is placing a loop here in order to change this
# example line into a list of options, but I can't figure out how
1 ) echo "You picked $opt which is option $REPLY";;
$(( ${#options[@]}+1 )) ) echo "Exiting"; break;;
*) echo "Invalid option. Try another one.";continue;;
esac
done
どんなヒントでも大歓迎です。前もって感謝します。