Я очень новичок в написании сценариев (одна неделя) и пробовал программу, которая создает адресную книгу для пользователя, где они могут сохранять данные своих друзей.
Сначала я прошу пользователя назвать свою адресную книгу и сохраняю ее в переменной 'abname', затем беру необходимые данные от пользователя и печатаю их в текстовом файле abname.txt.
Моя проблема: как я могу удалить запись, соответствующую идентификатору, предоставленному пользователем?
Вот что я сделал:
#!/бин/баш
идентификатор = "1"
пока (правда)
делать
echo -e "\nМеню\n1.Создать новую адресную книгу\n2.Просмотреть все содержимое адресной книги\n3.Вставить новую запись\n4.Удалить запись\n5.Изменить запись\n6.Выйти"
echo -e "\nВведите свой выбор: "
читать главу
echo -e "\nВы выбрали вариант: $ch"
регистр $ch в
1)
echo -e "\nВведите имя адресной книги"
прочитать $abname;;
2)
echo -e "\nАдресная книга: $abname" #по какой-то причине имя адресной книги здесь не печатается
echo -e "\nID\t Имя\t Возраст\t Адрес"
кот $abname.txt;; #распечатывает все содержимое файла
3)
echo -e "\nId человека: $id"
echo -e "\nВведите имя человека: "
прочитать имя
echo -e "\nВведите возраст: "
прочитать возраст
echo -e "\nВведите адрес: "
читать адрес
printf "$id\t $имя\t $возраст\t $адрес\n" >> $abname.txt
id=$((id+1));;
4)
echo -e "\nВведите ID человека, чья запись должна быть удалена: "
прочитать идентификатор
grep -v "$id" $abname.txt > $abname.txt
эхо "Запись удалена"
кот abname.txt;;
5)
echo -e "\n Сделать";;
6)выход;;
*) echo -e"\nНеверный выбор";;
эсак
сделано
Дополнительная справка: если файл abname.txt уже существует, я хочу обновить свою локальную переменную «id», соответствующую идентификатору последнего человека в текстовом файле, я пытался сделать это, но это не сработало, что мне здесь не хватает?
если [ -e $abname.txt ]
тогда
источник <$abname.txt>
идентификатор = $ идентификатор
фи