Tôi đang cố tạo HAL 9000. Tôi có một tệp chứa "hộp thoại" từ bộ phim,
và một danh sách từ có các từ trong EEPROM, tại các vị trí bộ nhớ tương ứng của chúng và các chip nơi các từ nằm trong bộ nhớ. Tôi đã viết một tập lệnh bash đọc hộp thoại phim và sẽ xuất địa chỉ bộ nhớ và chip. Nó dường như hoạt động khi các từ dài hơn một chữ cái.Khi các từ là 1 chữ cái (ví dụ: i, a), nó dường như xuất ra mọi trường hợp tìm thấy chữ cái đó trong một từ. Kịch bản bash:
#!/bin/bash
# Đọc hộp thoại lấy từ trên một dòng, sau đó tìm vị trí bộ nhớ và bật chip
#rec_column2 là địa chỉ trong chip của từ
#cs=Chọn chip, giá trị của rec_column3
#wordlist là thư viện xlsx được chuyển đổi qua: for i in *.xlsx; làm libreoffice --headless --convert-to csv "$i" ; xong
#sau đó đặt tất cả chữ thường vì tôi không biết cách so sánh các giá trị chỉ khác nhau về chữ hoa chữ thường
# lệnh được sử dụng: tr '[:upper:]' '[:lower:]' < input.csv > wordlist.csv
đầu vào = "hộp thoại"
trong khi IFS = đọc -r dòng
làm
trong khi IFS="," đọc -r rec_column1 rec_column2 rec_column3
làm
nếu kiểm tra "$line" = "$rec_column1"
sau đó
echo "//" $line " , " $rec_column1 " :: " $rec_column2 ", " $rec_column3
#echo "ghi kỹ thuật số($rec_column3,LOW);"
#echo "SPI.transfer($rec_column2);"
#echo "ghi kỹ thuật số($rec_column3,CAO);"
#echo "chậm trễ (850);"
fi
xong < wordlist.csv
xong < $input
[
Danh sách từ, với các vị trí bộ nhớ là đây.
Hộp thoại cho HAL 9000 là đây.
vì vậy, một lần nữa, trong trường hợp từ có nhiều hơn một chữ cái, tập lệnh dường như hoạt động.
tại sao nó kiểm tra các chữ cái đơn lẻ với mọi từ chứa chữ cái đó? Làm thế nào để tôi không làm điều đó?