ฉันยังใหม่กับการเขียนสคริปต์ (หนึ่งสัปดาห์ต่อมา) และกำลังลองใช้โปรแกรมที่สร้างสมุดที่อยู่สำหรับผู้ใช้ซึ่งพวกเขาสามารถบันทึกรายละเอียดของเพื่อนได้
อันดับแรก ฉันขอให้ผู้ใช้ตั้งชื่อสมุดที่อยู่ของพวกเขา และเก็บไว้ในตัวแปร 'abname' จากนั้นฉันจะรับอินพุตที่จำเป็นจากผู้ใช้และพิมพ์ลงในไฟล์ข้อความ abname.txt
ปัญหาของฉัน: ฉันจะลบเรกคอร์ดที่สอดคล้องกับ ID ที่ผู้ใช้ระบุได้อย่างไร
นี่คือสิ่งที่ฉันทำ:
#!/bin/bash
รหัส = "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 "\nAddress Book: $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 $name\t $age\t $addr\n" >> $abname.txt
id=$((id+1));;
4)
echo -e "\nป้อน ID ของบุคคลที่จะลบบันทึก:"
อ่านรหัส
grep -v "$id" $abname.txt > $abname.txt
echo "บันทึกถูกลบ"
แมว abname.txt;;
5)
echo -e "\n สิ่งที่ต้องทำ";;
6)ออก ;;
*) echo -e"\nตัวเลือกไม่ถูกต้อง";;
เอสแซค
เสร็จแล้ว
ความช่วยเหลือเพิ่มเติม: หากมีไฟล์ abname.txt อยู่แล้ว ฉันต้องการอัปเดตตัวแปร 'id' ในเครื่องของฉันที่สอดคล้องกับ id ของบุคคลสุดท้ายในไฟล์ข้อความ ฉันพยายามดำเนินการแล้ว แต่ไม่ได้ผล ฉันพลาดอะไรไปที่นี่
ถ้า [ -e $abname.txt ]
แล้ว
ที่มา <$abname.txt>
ไอดี = $ไอดี
ไฟ