2017-10-16 7 views
0

この豚のラテン語の翻訳者は、母音で始まるすべての単語に対して機能します。引数は大文字を含むすべての可能な母音に引数の最初の文字を比較しようと子音バグの豚ラテン

PIGIFY=$1 
vowels=(a e i o u A E I O U) 
CHECK=0 
for element in $vowels; do 
    if [[ $element == ${PIGIFY:0:1} ]] 
    then 
     echo ${PIGIFY}ay 
     break 
    fi 
    if [ $CHECK -eq 9 ] 
    then 
     echo ${PIGIFY:1}${PIGIFY:0:1}way 
    fi 
    CHECK=$((CHECK+1)) 
done 

私のスクリプトを起動したときただし、このスクリプトは何も印刷されません。私たちがReacher Uを持っていて、その単語がUで始まらないことがわかったら、カウンターは9に等しくなり、2番目の部分をエコーし​​ます。私の第2の条件が正しいかどうか、または私のカウンターのために自分の増分を混乱させるかどうかは疑問だ。代わりに母音が発見された場合、ループのために、単に変数を設定し、あなたの内側にこのロジックのすべてをやろうとしているの

+2

'$母音'は '$ {vowels [0]}'と同じであるので、 'a'だけに展開されます。あなたはたぶん '' $ {vowels [@]} ''を意味しています。 –

答えて

1

、ループを切断し、新しい変数に基づいて、その後、あなたのエコーを行います

PIGIFY=$1 
vowels=(a e i o u A E I O U) 
for element in $vowels; do 
    if [[ $element == ${PIGIFY:0:1} ]] 
    then 
     startswithvowel=true 
     break 
    fi 
done 

if [ $startswithvowel ]; then 
     echo ${PIGIFY}ay 
else 
     echo ${PIGIFY:1}${PIGIFY:0:1}way 
fi