【问题标题】:BASH Script syntax error near unexpected token ';;'意外标记';;'附近的 BASH 脚本语法错误
【发布时间】:2018-05-13 02:10:40
【问题描述】:

尝试运行这个简单的脚本,但无论我做什么,我都会得到同样的错误,真的不知道问题是什么。

就是这样:

    usr/local/bin/bash
clear
printf "\n\t\Menu Calcular "
printf "\n\t1.) Factorial de n "
printf "\n\t2.) e^x usando expansion de Taylor "
printf "\n\t3.) pi usando serie "
printf "\n option = "
read option
case $option in

        1)
                i=0
                fact=1
                echo "Entre un numero entero n = "
                read n
                while [ i<=n ]; do
                 let fact = $fact * $i
                echo "El factorial de n = "; echo $fact
        ;;

        *)
                clear;
                echo " I mean welp "
                ;;
esac

错误是意外标记';;'附近的语法错误在第 19 行 任何帮助表示赞赏

【问题讨论】:

  • 在使用 done 关闭 while 之前,您无法使用 ;; 关闭案例替代项。 shellcheck.net没有告诉你吗?
  • bash 标签信息要求您使用shellcheck.net 之前您在这里询问您的脚本问题。这很容易,而且通常会捕获简单的错误,从而节省您的时间和所有志愿者的时间。这似乎是提醒您该请求的好时机。谢谢。

标签: bash


【解决方案1】:

来自help while

while: while COMMANDS; do COMMANDS; done

你忘记了done

【讨论】:

    【解决方案2】:

    你没有结束你的 while 循环。在你的线路之后:

    echo "El factorial de n = "; echo $fact
    

    添加一个新行结束循环,如:

    done
    

    【讨论】:

      猜你喜欢
      • 2015-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 2016-09-06
      • 2014-02-26
      • 2018-12-18
      • 2014-01-20
      相关资源
      最近更新 更多