这是脚本:
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