意外令牌'完成'附近的Bash语法错误vi编辑器以红色突出显示

时间:2017-03-19 18:53:57

标签: linux bash

我试图学习如何在Bash脚本中使用while循环,并且我有以下脚本。

@Autowired

当我执行它时,我得到:

#!/bin/bash

continueKey = "y"
while [continueKey -ne "n"]
DO

        echo "Menu Options"
        echo "1 - whoami"
        echo "2 - df"
        echo "3 - date"
        echo "4 - cal"
        echo -n "Select option: "

        read option

        case  "$option" in

                1) whoami
                ;;

                2) df
                ;;

                3) date
                ;;

                4) cal
                ;;
               *)
                echo -e "\e[31mYou made an invalid selection. Exiting.\e[39m"
                exit 1
                ;;
        esac
        echo "Enter another command?"
        echo -n "Press 'n' to exit. Any key to continue "
        read continueKey
done
exit 0

在vi编辑器中,done命令以红色突出显示。这里有什么问题? 谢谢,

1 个答案:

答案 0 :(得分:1)

您在脚本开头就遇到了一些问题:

while [continueKey -ne "n"]
DO

continueKey在它前面需要$,否则它只是一个无效的命令。 DO应该是小写的,因为它区分大小写。 -ne应为!=,因为您不是在比较整数。

continueKey="y"
while [[ $continueKey != "n" ]]
do

我没有查看你脚本的其余内容,虽然这是关于你的问题的问题。