【问题标题】:bash Syntax Error: Unaccepted Token Elif [closed]bash 语法错误:不接受的令牌 Elif [关闭]
【发布时间】:2015-07-20 13:46:02
【问题描述】:

我在运行一个简单的脚本后收到了这条消息:

第 9 行:意外标记 elif 附近的语法错误 第 9 行:elif [ $sales -le 20000 ];

我的代码:

    #!/bin/bash
    echo "Please enter the how much sales you have done"
    read sales
    if [ $sales -le 5000 ];
    then
       echo "your profit is $[$sales*0.25]"
    elif [ $sales -le 10000 ];
       echo "your profit is $[$sales*0.1]"
    elif [ $sales -le 20000 ];
       echo "your profit is $[$sales*0.15]"
    elif [ $sales -le 40000 ];
       echo "your profit is $[$sales*0.2]"
    else
       echo "your profit is $[$sales*0.25]"
    fi

【问题讨论】:

  • 你错过了thens
  • 你说得对,谢谢:)
  • shellcheck.net 会为您捕获这些错误,然后,一旦您修复了这些错误,就会出现许多其他问题。
  • 引用你的变量。

标签: linux bash ubuntu


【解决方案1】:
  1. 你在elif 之后缺少then
  2. 您不能在 bash 中进行浮点数学运算。

你可以使用这个脚本:

#!/bin/bash
read -p "Please enter the how much sales you have done: " sales
if [ $sales -le 5000 ]; then
   pp='0.25'
elif [ $sales -le 10000 ]; then
   pp='0.1'
elif [ $sales -le 20000 ]; then
   pp='0.15'
elif [ $sales -le 40000 ]; then
   pp='0.2'
else
   pp='0.25'
fi
echo "your profit is " $(bc -l <<< "$sales * $pp")

【讨论】:

  • 还有其他方法可以在 bash 中进行浮点数学运算吗?
  • 没有原生 BASH 不允许浮点数学。您需要使用bcawk 等外部工具。
  • 我明白了,非常感谢!
猜你喜欢
  • 2015-10-24
  • 2014-01-10
  • 2012-08-02
  • 1970-01-01
  • 1970-01-01
  • 2014-12-03
  • 2013-10-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多