Bir spritz uygulaması oluşturmaya çalışıyorum. Her şey iyi çalışıyordu, ama dünden beri bu hatayı almaya devam ediyorum:
./spritz: satır 176: sözdizimi hatası: beklenmeyen dosya sonu
Ben komut dosyasını kontrol ettim ve her şey mükemmel görünüyor. Kafam karıştı, sonunda bir if ifadem var ve doğru görünüyor! İşte son bölüm:
#checks if speed is 150
157 if [[ $2 -eq 150 ]];
158 then
159 starttime=$SECONDS
160 FS=$'\n'
161 for j in `grep --color=always -iP '\b[^aeiou\s]*[aeiou][^aeiou\s]*\K[aeiou]' $1`;
162 do
163 #Reads the text file in the centre of the screen
164 echo " ___________________"
165 echo " $j";
166 echo " ___________________"
167 echo " Speed 150 wpm"
168 sleep 0.9;
169 clear;
170 done
171 endtime=$(($SECONDS - $starttime))
172 echo "You read $words_read words in $endtime seconds!"
173 exit 8
174 fi
Bu hataya ne sebep olabilir?
"$1", "$2", "$SECONDS", ve "$starttime". (3) Doğru girintili olan kodu okumak ve hata ayıklamak daha kolaydır. (4) Neden ayarlıyorsunuz FSve sonra kullanmıyorsunuz? (5) `…`yazılabilir $(…). (6) $(($SECONDS - $starttime))eşdeğer olarak yazılabilir $((SECONDS - starttime)). Yine, bu temelde bir stil meselesidir. (7) Döngüde değiştirmediğinizde neden "$words_read"döngüde yazdırıyorsunuz ?
`grep …`bir değer listesiyle değiştirmeyi deneyin . Başka bir deyişle, eleme sürecini kullanın.
"$1"alıntıya ihtiyaç duyar, (reklam 4) muhtemelen o demekti IFS(değil FS)?
;Bir satırın sonunda kaçamayan (noktalı virgül) ihtiyacınız olan hiçbir durum bilmiyorum . 157, 161, 165, 168 ve 169 satırlarının uçlarındaki noktalı virgülleri silebilirsiniz. (Ya da onları bırakabilirsiniz; sanırım bu bir stil meselesidir.)… (Devam)