【问题标题】:shell scripting EXPR syntax error [duplicate]shell脚本EXPR语法错误[重复]
【发布时间】:2018-01-25 07:58:15
【问题描述】:

我在以下代码中遇到语法错误。 我正在尝试打印数字 n 的平方。

#!/bin/sh

echo "Enter a number n to print squares : "
read num

i=1

while [ $i -le $num ]
do

    echo $(expr $i * $i)
    i=$(expr $i + 1)

done

echo "Done with Script"

谁能告诉我代码有什么问题? 提前谢谢你们。

【问题讨论】:

  • 您的代码中存在语法错误。这就是您想告诉我们的全部内容吗?

标签: shell scripting sh


【解决方案1】:
#!/bin/sh

echo "Enter a number n to print squares : "
read num

i=1

while [ $i -le $num ]
do

    echo $(expr $i \* $i)
    i=$(expr $i + 1)

done

echo "Done with Script"

屏蔽* 符号。

【讨论】:

  • 您想给出更多解释吗?为什么需要转义/屏蔽星号?
  • 因为它是 shell 的通配符。等效地,引用它。更好的是,不要使用expr(如果问题根本与 Bash 无关,请不要将问题标记为 bash;但如果您确实可以访问 Bash,这是完全避免 expr 的好方法) .
  • 是的,为什么我们需要屏蔽'*'?
  • @tripleee expr 的替代品有哪些?
  • 您使用标签bashlinux 发布了这个问题,所以我假设您有Bash。阅读手册页,查找“算术”。
猜你喜欢
  • 2010-11-05
  • 1970-01-01
  • 2021-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多