运行我的bash脚本时出错

时间:2017-10-31 07:09:00

标签: bash

我制作了这个bash脚本,但在运行时遇到此错误:./ admin2.sh:第78行:意外令牌else' ./admin2.sh: line 78:附近的语法错误'。 我已经编辑了很多次,但我似乎无法找到错误到底是什么。这是剧本:

#!/bin/bash
if [[ $key == 1029127 ]]
clear
echo -e ""
echo -e -n "${LIGHTRED}[!] ${WHITE}Loading admin menu"
spinner () {
local SP_WIDTH="$3"
local SP_DELAY="$4"
local SP_STRING=${2:-"'|/=\'"}
local SP_COLOR=0
tput civis
while [ -d /proc/$1 ]; do
    ((RANDOM%2 == 0)) && SP_COLOR=3$((RANDOM%8)) ||
SP_COLOR=9$((RANDOM%8))
    printf "\e[1;${SP_COLOR}m\e7  %${SP_WIDTH}s  \e8\e[0m" "$SP_STRING"
    sleep ${SP_DELAY:-.2}
    SP_STRING=${SP_STRING#"${SP_STRING%?}"}${SP_STRING%?}
done
tput cnorm
}

sleep 2.5 &
spinner "$!" '-\\|/' '1.1' '.2'
tput civis
sleep 1
tput cnorm
while true
do
clear
echo -e "${LIGHTCYAN} Welcome"
echo -e ""
echo -e -n "${WHITE}- Current IP:${LIGHTRED} "
w|awk '{if(NR>2){print $3}}' $3
echo -e -n "${WHITE}- Users connected:${LIGHTRED} "
users | wc -w
echo -e "${WHITE}- Admin privileges:${WHITE
[${LIGHTGREEN}Enabled${WHITE}]"
echo -e ""
echo -e "${LIGHTRED} //Announcements//"
echo -e ""
echo -e "${YELLOW}- Type: /help to see commands"
echo -e "\n"
echo -e ""
echo -e ""
echo -e -n "${LIGHTRED}Type: \c"
read answer
else
echo -e ""
echo -e "${LIGHTRED}[!] ${WHITE}Incorrect key, access denied.
fi

2 个答案:

答案 0 :(得分:0)

在第2行的then声明之后,您错过了if

if [[ $key == 1029127 ]]
then
  ...
else
  ...
fi

许多人更喜欢将then放在同一行,如:

if [[ $key == 1029127 ]]; then
  ...
else
  ...
fi

无论哪种方式,我都鼓励您正确缩进代码,以便更容易阅读,并对样式选择保持一致,例如将thendo放在不同的行上。

答案 1 :(得分:0)

你似乎也忘了结束第二次循环。您应该在else

之前的行上添加done来结束它
...
read answer
done
else
  echo -e ""
  echo -e "${LIGHTRED}[!] ${WHITE}Incorrect key, access denied.
fi