Sunt foarte nou în scripting (o săptămână după) și încercam un program care creează o agendă de adrese pentru utilizator, unde pot salva detaliile prietenilor lor.
Mai întâi îi cer utilizatorului să-și numească agenda și o stochez în variabila 'abname', apoi iau intrarea necesară de la utilizator și o imprim în fișierul text abname.txt
Problema mea: Cum pot șterge o înregistrare corespunzătoare ID-ului furnizat de utilizator?
Iată ce am făcut:
#!/bin/bash
id="1"
în timp ce (adevărat)
do
echo -e „\nMeniu\n1.Creați o nouă agendă de adrese\n2.Vizualizați tot conținutul agendei de adrese\n3.Inserați o înregistrare nouă\n4.Ștergeți o înregistrare\n5.Modificați o înregistrare\n6.Ieșiți”
echo -e "\nIntroduceți alegerea dvs.: "
citeste cap
echo -e „\nAți selectat opțiunea: $ch”
caz $ch in
1)
echo -e „\nIntroduceți numele agendei de adrese”
citeste $abname;;
2)
echo -e „\nAgendă: $abname” #numele agendei nu se imprimă aici dintr-un motiv oarecare
echo -e „\nID\t Nume\t Vârsta\t Adresă”
cat $abname.txt;; #tipărește tot conținutul fișierului
3)
echo -e „\nIdul persoanei este: $id”
echo -e "\nIntroduceți numele persoanei: "
citeste numele
echo -e "\nIntroduceți vârsta: "
citeste varsta
echo -e "\nIntroduceți adresa: "
citeste adresa
printf "$id\t $nume\t $vârstă\t $adresă\n" >> $abname.txt
id=$((id+1));;
4)
echo -e "\nIntroduceți ID-ul persoanei care urmează să fie ștearsă înregistrarea: "
citeste id
grep -v „$id” $abname.txt > $abname.txt
echo „Înregistrarea este ștearsă”
cat abname.txt;;
5)
echo -e "\n Tot";;
6)ieșire;;
*) echo -e"\nAlegere nevalidă";;
esac
Terminat
Ajutor suplimentar: Dacă fișierul abname.txt există deja, vreau să-mi actualizez variabila locală „id” corespunzătoare ID-ului ultimei persoane din fișierul text, am încercat să fac asta, dar nu a funcționat, ce îmi lipsește aici?
dacă [ -e $abname.txt ]
atunci
sursa <$abname.txt>
id = $id
fi