Linux笔记:Shell脚本实现判断输入字母是否是英语元音

#!/bin/bash
echo -n "Please input a vowel letter(Aa Ee Li Oo Uu):"
read Key
if [ $Key = "A" -o $Key = "a" ]
then
        echo "You input the vowel letter \"A\"."
        echo "Thank you."
elif [ $Key = "E" -o $Key = "e" ]
then
        echo "You input the vowel letter \"E\"."
        echo "Thank you."

elif [ $Key = "I" -o $Key = "i" ]
then
        echo "You input the vowel letter \"I\"."
        echo "Thank you."

elif [ $Key = "O" -o $Key = "o" ]
then
        echo "You input the vowel letter \"O\"."
        echo "Thank you."

elif [ $Key = "U" -o $Key = "u" ]
then
        echo "You input the vowel letter \"E\"."
        echo "Thank you."

else
        echo "The letter you input is not a vowel letter."
        echo "Try again."
fi
echo "Finished!"

总结一下该shell脚本的格式易错点:

  • 变量的创建和引用中,赋值运算符"=“的两边必须没有空白,当需要引用一个变量的内容时,需要使用符号”$"。如果涉及字符串的连接,一般还需要配合花括号"{ }"
  • echo命令后若使用了选项"-n",则可以在echo命令输出字符串后把光标保持在该字符串的末尾,等待后面的输出。
  • expr 命令既可以把参数中的变量理解为数值变量,也可以把参数中的变量理解为字符串变量。expr 命令判断的依据是: 如果表达式中的运算符号(诸如"+"、"-"等)的左右两边都包含有空格,那么该运算符的两边的变量就被认为是数值变量,否则,就被认为是字符串变量。所以,使用expr命令对表达式求值,必须注意保证每个运算符号的左右两边都留有空格。
  • test 命令可以对字符串表达式和算数表达式进行测试
    1、test $Key = “A” -o $Key = “a”,-o表示或
    2、为了有更好的可读性,可以使用"[ ]“来代替test 命令
    3、如[ $Key = “A” -o $Key = “a” ]
    4、注意:第3点中,除了比较运算符的两边必须有空格外,还要求”[“的后面和”]"的前面也必须有空格。

对于前面给出的使用if语句判断元音字母脚本,用户还可以使用case语句将它改写为:

#!/bin/bash
echo -n "Please input a vowel letter(Aa Ee Li Oo Uu):"
read Key
case $Key in
        [Aa])
                echo "You input the vowel letter \"A\"."
                echo "Thank you."
                ;;
        [Ee])
                echo "You input the vowel letter \"E\"."
                echo "Thank you."
                ;;
        [Ii])
                echo "You input the vowel letter \"I\"."
                echo "Thank you."
                ;;
        [Oo])
                echo "You input the vowel letter \"O\"."
                echo "Thank you."
                ;;
        [Uu])
                echo "You input the vowel letter \"E\"."
                echo "Thank you."
                ;;
        *)
                echo "The letter you input is not a vowel letter."
                echo "Try again."
                ;;
esac
echo "Finished!"

总结一下该shell脚本的格式易错点:
由于case语句可以使用通配符,因此该脚本使用通配符"[ ]"轻松实现大小写的同时匹配。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值