ฉันกำลังพยายามสร้าง HAL 9000 ฉันมีไฟล์ที่มี "ไดอะล็อก" จากภาพยนตร์
และรายการคำศัพท์ที่มีคำใน EEPROM ที่ตำแหน่งหน่วยความจำตามลำดับ และชิปที่มีคำอยู่ในหน่วยความจำ ฉันเขียนสคริปต์ทุบตีที่อ่านไดอะล็อกของภาพยนตร์ และควรส่งออกที่อยู่หน่วยความจำและชิป ดูเหมือนว่าจะใช้ได้เมื่อคำนั้นยาวกว่าหนึ่งตัวอักษรเมื่อคำมี 1 ตัวอักษร (เช่น: i, a) ดูเหมือนว่าจะแสดงผลทุกครั้งที่พบตัวอักษรในคำ สคริปต์ทุบตี:
#!/bin/bash
#อ่านกล่องโต้ตอบ รับคำในบรรทัด จากนั้นค้นหาตำแหน่งหน่วยความจำและชิปที่เปิดอยู่
#rec_column2 คือที่อยู่ในชิปของคำนั้น
#cs=เลือกชิป ค่าของ rec_column3
#wordlist คือไลบรารี xlsx ที่แปลงผ่าน: for i ใน *.xlsx; ทำ libreoffice --headless --convert-to csv "$i" ; เสร็จแล้ว
#แล้วใส่ตัวพิมพ์เล็กทั้งหมด เพราะไม่รู้จะเปรียบเทียบค่าที่ต่างกันแค่ตัวพิมพ์ได้อย่างไร
#คำสั่งที่ใช้: tr '[:upper:]' '[:lower:]' < input.csv > wordlist.csv
อินพุต = "โต้ตอบ"
ในขณะที่ IFS= read -r บรรทัด
ทำ
ในขณะที่ IFS="," อ่าน -r rec_column1 rec_column2 rec_column3
ทำ
ถ้าทดสอบ "$line" = "$rec_column1"
แล้ว
echo "// " $บรรทัด " , " $rec_column1 " :: " $rec_column2 ", " $rec_column3
#echo "digitalWrite($rec_column3,LOW);"
#echo "SPI.transfer($rec_column2);"
#echo "digitalWrite($rec_column3,HIGH);"
#echo "ล่าช้า (850);"
ไฟ
เสร็จแล้ว < wordlist.csv
เสร็จแล้ว < $input
[
รายการคำศัพท์ที่มีตำแหน่งหน่วยความจำคือ ที่นี่.
บทสนทนาสำหรับ HAL 9000 คือ ที่นี่.
อีกครั้ง ในกรณีที่คำมีมากกว่าหนึ่งตัวอักษร สคริปต์ดูเหมือนจะทำงาน
เหตุใดจึงตรวจสอบตัวอักษรเดี่ยวกับทุกคำที่มีตัวอักษรนั้น ฉันจะไม่ทำอย่างนั้นได้อย่างไร