linux - shell 脚本中的简单 case 语句失败

标签 linux bash shell

我写了一个非常简单的案例陈述,但失败了。我仔细检查了语法,但找不到哪里出了问题。有人可以告诉我吗?

#!/bin/bash

opt_type=0


function opt_type
{
        echo "Opt Porvisioning tool starting..."

        echo -e "1. ABC \n2. DEF \n3. HIJ \n"
        read opt_input

        case $opt_input in
        1|abc|ABC)
                opt_type=1;

        2|def|DEF)    
                opt_type=2;

        3|hij|HIJ)    
                opt_type=3;

        4|exit|Exit) echo "Exiting ..."

        *) echo "Please enter a valid entry. Exiting!!"

        esac
}

echo $opt_type


./opt_type.sh: line 16: syntax error near unexpected token `)'
./opt_type.sh: line 16: `       2|def|DEF)
-bash-3.2$ 

我没有看到任何这样的符号 (`) 那为什么它会提示呢?

最佳答案

你应该加双分号:

case $opt_input in
    1|abc|ABC)
        opt_type=1;;
    2|def|DEF)    
        opt_type=2;;
    3|hij|HIJ)    
        opt_type=3;;
    4|exit|Exit)
        echo "Exiting ...";;
    *)
        echo "Please enter a valid entry. Exiting!!";;
esac

关于linux - shell 脚本中的简单 case 语句失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15030937/

相关文章:

shell - 如何使用弹出窗口在 xamarin shell 标题中设置背景图像?

linux - 如何检查 BASH 中的文件?

linux - ansible中的bash数组元素计数操作

mysql - 在 CentOS 6 上重置 MySQL 和 Plesk 的管理员密码

arrays - 在 Bash 中循环遍历多个数组时关联数组键中的空格

performance - Bash 脚本 super 慢

linux curl 重定向和授权

linux - 如何确定 Rust 中进程的有效用户 ID?

linux - 对两个文件使用 diff 并通过电子邮件发送

bash - 在名称以数字开头的目录中查找编号最高的文件名