Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash中的猪拉丁语_Bash_For Loop_Conditional - Fatal编程技术网

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]}
。你的意思可能是
“${元音[@]}”