2017-10-16 141 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 

我的脚本开始将尝试争论的第一个字母比较所有可能的元音字母,包括大写字母这个脚本不显示任何信息。一旦我们找到U并且发现这个单词不是以U开头的,那么计数器应该等于9,然后我希望第二部分被回显。我想知道,如果我的第二个条件是正确的形式,或者如果我搞乱了我的柜台增量。

+2

'$ vowels'扩展为'a',因为它相当于'$ {元音[0]}'。你可能意思是'“元音[@]}”'。 –

回答

1

,而不是试图做这一切的逻辑里面你的for循环,只要设置一个变量,如果元音被发现,打破循环,然后做你的回音后根据新的变量:

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