だから私は簡単なアドレス帳を開発していますが、うまくいっています。単一のテキスト ファイルを使用してすべての情報を保存します。
すぐに、特定の文字列のファイルを検索できますが、問題はありません。
ユーザー入力に基づいて文字列を削除できると確信していますが、それは簡単ですが、検索語の出力を取得できれば、さらにおしゃれになると思いました-複数行output say - それぞれの新しい行を配列に格納し、それぞれに番号を割り当てます。そこから、ユーザーは入力に基づいて行を削除することを指定できます。
これまでのところ、これは「削除」スクリプトです。
ADDRESSBOOK=~/Documents/Address-Book/add_data.txt
export ADDRESSBOOK
echo "=============================== Delete a Record ==============================="
echo "==============================================================================="
echo "============ Search A Record, then delete it! Type 'exit' to exit ============="
exit=0
search(){
while [ $exit -ne 1 ]
do
echo "Find something for me to delete"
echo -n "-----------------------> "
read searchTerm
if [ "$searchTerm" = "exit" ]
then
exit=1
else
searchOutput=$(grep $searchTerm*.$ $ADDRESSBOOK | sort)
echo "$searchOutput"
fi
done
exit 0
}
search
アドレス帳は、/n を使用して各レコードを自動的に追加するため、いずれにせよ各レコードは新しい行に表示されます。
$searchRecord 変数を取得して配列に渡すことは可能ですか?
そして、配列に頭を悩ませる前に、これは私がやろうとしていることに対して取るべき最善のアプローチでさえありますか?
私は現在、次の行に沿って何かを試しています
if [ "$searchTerm" = "exit" ]
then
exit=1
else
searchOutput=$(grep $searchTerm*.$ $ADDRESSBOOK | sort)
echo {$searchOutput[*] '/n' }
fi
'/n' は、TRY してレコードを取得し、それぞれが新しい行に表示されるようにすることです。アドバイスはありますか?