Shell 脚本查找脚本中元音的数量

Shell 脚本查找脚本中元音的数量

这是脚本:

clear
echo
read str
len=`expr length $str`
count=0
while [ $len -gt 0 ]
do
    ch=`echo $str | cut -c $len`
    case $ch in
        [(aeiouAEIOU)]
            count=`expr $count + 1`
            echo $ch
            ;;

    len=`expr $len - 1`
done
echo $count

错误:

prog6: line 12: syntax error: unexpected newline (expecting ")")

答案1

为什么不使用:

grep -o [aeiouAEIOU] file | wc -l

这是您的代码(修改后):

#!/bin/bash

clear
echo
read str
len=$(expr length $str)
count=0
while [ $len -gt 0 ]
do
   ch=$(echo $str | cut -c $len)
   case $ch in
      [aeiouAEIOU] )
         count=$(($count + 1))
         echo $ch
      ;;
   esac
   len=$(( $len - 1 ))
done
echo $count

答案2

我认为您确实可以使用一些重新格式化来查看缩进等。唯一让我惊讶的是你没有esac声明来关闭你的case.

答案3

perl -n0E 'say y/aeiou//' file

在 Perl 中,translate ( y///) 函数返回翻译的名称...

答案4

echo -n "enter string : "
read str
v=$(echo $str | grep -o -i "[aeiou]" | wc -l)
echo $v

相关内容