Bash中的猪拉丁语
这个猪拉丁翻译适用于所有以元音开头的单词;但是,当参数以辅音开头时,此脚本不会打印任何内容Bash中的猪拉丁语,bash,for-loop,conditional,Bash,For Loop,Conditional,这个猪拉丁翻译适用于所有以元音开头的单词;但是,当参数以辅音开头时,此脚本不会打印任何内容 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
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,然后我想让第二部分得到回应。我想知道我的第二个条件是否正确,或者我是否弄乱了计数器的增量 不要尝试在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
$元音
扩展为仅a
,因为它相当于${vouels[0]}
。你的意思可能是“${元音[@]}”
。