所以我正在开发一个简单的地址簿并且进展顺利。它使用单个文本文件来存储其所有信息。
此刻我可以在文件中搜索特定字符串,这不是问题。
我很确定我可以让它根据用户输入删除一个字符串,这很容易,但我认为为了更加时髦,如果我能抓住搜索词的输出 - 多行,那将是一个好主意输出说 - 并将每个新行存储到一个数组中,每个数组分配一个数字。从那里,用户可以指定他们想根据他们的输入删除该行。
到目前为止,这是“删除”脚本:
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' 是为了尝试并让每个记录出现在新行上。有什么建议吗?