首页 > 解决方案 > Bash 错误消息:意外标记“|”附近的语法错误

问题描述

我正在创建一个计算圆面积的程序,但由于标题中的错误消息,bash 无法编译和执行。这是我的代码:

    elif [ $num -le 6 ] && [ $num -ge 4 ]
  then
      read -p "Enter radius: " radius
      let areaCirc=("scale=2;3.1416 * ($radius * $radius)"|bc)
      echo "Area of the circle is: " $areaCirc

并且错误消息是: 意外标记'|'附近的语法错误

有人能帮我吗?

标签: bash

解决方案


  1. 要通过标准输入将字符串发送到命令,请使用here-string command <<< string,而不是管道。
  2. 命令替换语法是$(...),不是(...)
  3. 不要let在这里使用。Shell 算术仅支持整数。
areaCirc=$(bc <<< "scale=2;3.1416 * ($radius * $radius)")

推荐阅读