我开始使用bash脚本并实现我在其他编程语言中学习的大部分内容来进行bash。我必须检查用户是否输入了元音字符。我想出了这个:
#!/bin/bash
read -p "Enter something: " char
if [[ $char -eq [AEIOUaeiou]* ]]; then
echo "vowel"
else
echo "consonant"
fi
但是当我在IdeOne上运行它时,我收到错误:
prog.sh: line 3: [[: [AEIOUaeiou]*: syntax error: operand expected (error token is "[AEIOUaeiou]*")
有人可以告诉我这里有什么问题以及如何纠正吗?
我知道其他不那么干净的方法是将多个条件||
组合在一起。我试图避免这种情况。
答案 0 :(得分:4)
您需要使用==
运算符进行此匹配:
#!/bin/bash
read -p "Enter something: " char
if [[ "$char" == *[AEIOUaeiou]* ]]; then
echo "vowel"
else
echo "consonant"
fi
-eq
- 用于匹配数字
根据man test
:
INTEGER1 -eq INTEGER2
INTEGER1 is equal to INTEGER2