我有以下脚本:
#!/bin/sh
r=3
r=$((r+5))
echo r
然而,我收到此错误:
第3行的语法错误:$ unexpected。
我不明白我做错了什么。我正在关注此http://www.unixtutorial.org/2008/06/arithmetic-operations-in-unix-scripts/
字母的在线指南答案 0 :(得分:3)
如果您使用bash
,这听起来不错,但如果您正在使用其他shell,则可能不支持$((r+5))
。 /bin/sh
指向什么?您是否考虑将其替换为/bin/bash
(如果可用)?
答案 1 :(得分:2)
shebang线是你的问题。 bash不是sh。将其更改为#!/bin/bash
即可。您还需要echo $r
而不是echo r
。
答案 2 :(得分:0)
如果您将8
更改为echo r
,它适用于我(打印echo $r
)。你安装了什么版本的sh
?什么是unix发行版?
答案 3 :(得分:0)
您可能需要尝试以下操作:
#!/bin/sh
r=3
r=$((r + 5))
echo $r
答案 4 :(得分:0)
对于做数学(包括小数/浮点数),您可以使用awk
或bc/dc
。
awk -vr="$r" 'BEGIN{r=r+5;print r}'
或
echo "$r+5" | bc