スクリプトは次のとおりです。
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では、翻訳(y///
)関数は翻訳された名前を返します。
答え4
echo -n "enter string : "
read str
v=$(echo $str | grep -o -i "[aeiou]" | wc -l)
echo $v