Bash 中的拉丁猪
Pig latin in Bash
这个 pig 拉丁语翻译器适用于所有以元音开头的单词;但是,当参数以辅音
开头时,此脚本不会打印任何内容
PIGIFY=
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,然后我想要回显第二部分。我想知道我的第二个条件是否是正确的形式,或者我是否弄乱了我的计数器增量。
与其尝试在 for 循环中执行所有这些逻辑,不如在找到元音时设置一个变量,中断循环,然后根据新变量执行回显:
PIGIFY=
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
这个 pig 拉丁语翻译器适用于所有以元音开头的单词;但是,当参数以辅音
开头时,此脚本不会打印任何内容PIGIFY=
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,然后我想要回显第二部分。我想知道我的第二个条件是否是正确的形式,或者我是否弄乱了我的计数器增量。
与其尝试在 for 循环中执行所有这些逻辑,不如在找到元音时设置一个变量,中断循环,然后根据新变量执行回显:
PIGIFY=
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