如何在`case`中设置变量?

时间:2014-05-30 20:28:01

标签: bash shell

我遇到了一个错误,不知道出了什么问题。

#!/bin/bash
aa="boy"
cc="1"
case $cc in
    [1]* ) echo "You input 1";; aa="girl";;
    * ) echo "Please answer 1";;
esac

错误:

./myscript: line 5: syntax error near unexpected token `;;'
./myscript: line 5: `    [1]* ) echo "You input 1";; aa="girl";;'

2 个答案:

答案 0 :(得分:2)

像这样,

#!/bin/bash
aa="boy"
case $1 in
    [1]* )
        echo "You input 1"
        aa="girl"
        ;;
    * ) ;;
esac
echo $aa

输出

$ ./test.sh
boy
$ ./test.sh 1
You input 1
girl

答案 1 :(得分:1)

案例模式的结束应该是一次,所以你必须使用;;每种模式只有一次。

[1]* ) echo "You input 1"; aa="girl";;

您可以更改显示的行。