#!/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行:语法错误:意外的文件结尾
提前致谢!
答案 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