寻找

时间:2015-07-06 14:38:46

标签: bash eof

#!/bin/bash

STOP=0
ARRAY=( "[0;30m             kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk    kkkkkkkkkkkkk [01;32m ___ ____"
        "[0;30m      kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk    kkkkkkkkkkkk [01;32m / __/ ___|"
        "[0;30m     kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk    kkkkkkkkkkkk [01;32m | |  \___\"
      )
IDX=0
MAX=${#ARRAY[@]}
while [ $STOP -eq 0 ]; do
echo ${ARRAY[${IDX}]}
let IDX=IDX+1
if [ $IDX -eq $MAX ]; then
    IDX=0
fi
sleep 1
done

这是出现错误的区域,但我无法找到错过的内容。 这是错误:     第4行:寻找匹配的“”时意外的EOF     第15行:语法错误:意外的文件结尾

提前致谢!

1 个答案:

答案 0 :(得分:0)

您已嵌入\个字符,请使用单引号而不是双引号。你无法逃脱'一个单引号(在bash中),所以它更安全(不幸的是很多语法荧光笔,包括这个,不知道)。

考虑到您正在使用bash,您使用的是非常古老的语法。

使用UPPERCASE变量名称是个坏主意,因为它们可能会与shell使用的名称冲突。

每当你没有缩进你的代码时,一只小猫就会死亡。

#!/bin/bash

stop=0
array=( '[0;30m             kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk    kkkkkkkkkkkkk [01;32m ___ ____'
        '[0;30m      kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk    kkkkkkkkkkkk [01;32m / __/ ___|'
        '[0;30m     kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk    kkkkkkkkkkkk [01;32m | |  \___\'
      )
idx=0
max=${#array[@]}

while (( $stop == 0 ))
do
    echo ${array[${idx}]}
    (( idx=idx+1 ))

    if (( $idx == $max ))
    then
        idx=0
    fi
    sleep 1
done