为什么这个简单的 bash 脚本会在 if/then/else 上抛出错误?

为什么这个简单的 bash 脚本会在 if/then/else 上抛出错误?

如果我尝试运行这个脚本:

clear
echo -n "please enter a value"

read num 

if [ "$num" -eq 8 ] then
        echo "you entered 8"
else
        echo "the number you entered was not 8"

我得到以下输出/错误:

请输入值5
./script.sh: 第 9 行: 意外标记“else”附近出现语法错误
./script.sh: 第 9 行: else'

为什么这个脚本无法运行?

答案1

子句后面缺少分号或换行符,并且块末尾也if没有。fiif

#!/bin/bash
clear
echo -n "please enter a value"

read num 

if [ "$num" -eq 8 ]
then
        echo "you entered 8"
else
        echo "the number you entered was not 8"
fi

其他一些建议:

  • 脚本应始终以一行开头#!,告诉系统要使用哪个解释器
  • 您的比较[ "$num" -eq 8 ]是数字比较。如果您不确定用户是否真的会输入数字,请考虑使用字符串比较,[ 8 = "$num" ]
  • 您可以将提示包含在read语句中,read -p "Please enter a value: " num

相关内容