【问题标题】:getting error when running my bash script运行我的 bash 脚本时出错
【发布时间】:2018-04-12 06:50:57
【问题描述】:

我制作了这个 bash 脚本,但是在运行它时出现了这个错误:./admin2.sh: line 78: syntax error near unexpected token else' ./admin2.sh: line 78:else'。 我已经编辑了很多次,但我似乎无法找到究竟是什么错误。这是脚本:

#!/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

【问题讨论】:

标签: bash


【解决方案1】:

您似乎也忘记了结束第二个 while 循环。您应该通过在 else 之前的行上添加 done 来结束它

...
read answer
done
else
  echo -e ""
  echo -e "${LIGHTRED}[!] ${WHITE}Incorrect key, access denied.
fi

【讨论】:

  • 如果它的要求不是太多,我又遇到了一个错误,就是这样:./admin2.sh: line 232: unexpected EOF while looking for matching `"' 这就是现在第 232 行:echo -e "${LIGHTRED} 完成!"
  • 还有错误:./admin2.sh:第 240 行:语法错误:文件意外结束,这是第 239 行的内容:esac 第 240 行没有任何内容,脚本在第 239 行结束跨度>
  • 听起来你好像在某处遗漏了一个 ",你可能在某处开始了一个字符串而忘记结束它
【解决方案2】:

您在第 2 行的 if 声明之后缺少 then

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 2022-12-01
    • 2012-04-10
    • 1970-01-01
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多