我的 bash 脚本是第 29 行,但第 30 行有错误

My bash script is 29 line but there is an error in line 30

我是bash的新人,所以我在练习bash,第30行有错误。但是我的脚本是29行。

错误是“./goz.sh: line 30: syntax error: unexpected end of file” 我的错是什么?

这是我的脚本:

#!/bin/bash
echo -e "What is your eye color's origin? \n"
echo -e "To learn, please enter; \n"
echo -e "For green 1\nfor brown 2\nfor blue 3 \nfor read 4"

while true
read -p  "pick a color please (for quit (q)):\n" goz

case $goz in
1) 
    echo "Mediterranean"
    ;;
2)
    echo "Asian"
    ;;
3)
    echo "Scandinavian"
    ;;
4)
    echo "Dark Lord of the sith"
    ;;
q  | Q)
    echo "quitting"
    break
    ;;
*)
    echo "You are never been existed."
    ;;
esac

while 的语法是

while [CONDITION]
do
  [COMMANDS]
done

所以通过添加 dodone 来修改上面的代码应该可以修复错误。

#!/bin/bash
echo -e "Göz renginiz nereden geliyor? \n"
echo -e "Öğrenemek için lütfen: \n"
echo -e "Yeşil için 1'e\nkahverengi için 2'ye\nMavi için 3'e \nkırmızı için 4'e basınız."

while true
do
read -p  "lütfen bir renk seçiniz (çıkmak için 'q' ya basnız):\n" goz

case $goz in
1) 
    echo "akdeniz kökenli"
    ;;
2)
    echo "asya kökenli"
    ;;
3)
    echo "iskandinav kökenli"
    ;;
4)
    echo "dark lord of the sith"
    ;;
q  | Q)
    echo "çıkılıyor"
    break
    ;;
*)
    echo "Sen aslında yoğsun yoğ. hiç var olmadın, yoğsun."
    ;;
esac
done