我做了一些我认为应该是一个名为bashispainful.sh的shell脚本:
码:
#!/bin/bash
Var1= $((10*5))
Var2= $((10/5))
Var3= $((10-5))
Var4= $((10+5))
Var5= ($(Var4)*$(Var3))
echo $Var1
echo $Var2
echo $Var3
echo $Var4
echo $Var5
我想收到输出:
50
2
5
15
75
我目前的输出:
./Bashispainful.sh: line 2: 50: command not found
./Bashispainful.sh: line 3: 2: command not found
./Bashispainful.sh: line 4: 5: command not found
./Bashispainful.sh: line 5: 15: command not found
./Bashispainful.sh: line 6: Syntax error near unexpected token `('
./Bashispainful.sh: line 6: `Var5= ($(Var4)*$(Var3))'
我的目标是获得任何关于能够在bash中完成基本数学的能力.我已经尝试了每个网站以及括号,美元符号和缺乏的各种组合,我可以想到,坦率地说,我感到困惑和绝望.如何在bash中执行简单的数学运算?
(请让这个易于理解 – 请假设我是一个非程序员和愚蠢的人)
解决方法:
Bash并不痛苦:
#!/bin/bash
Var1=$((10*5))
Var2=$((10/5))
Var3=$((10-5))
Var4=$((10+5))
Var5=$((Var4*Var3))
echo $Var1
echo $Var2
echo $Var3
echo $Var4
echo $Var5
输出是:
50
2
5
15
75
笔记
考虑:
Var1= $((10*5))
在bash进行算术替换后,该命令如下所示:
Var1= 50
该命令说(a)暂时将Var1设置为空,(b)运行名为50的命令.由于没有名为50的命令,您收到错误:
Bashispainful.sh: line 2: 50: command not found
Var1=$((10*5))
考虑:
Var5= ($(Var4)*$(Var3))
对于名称以(.那是无效的)命令,这会将Var5暂时设置为空.因此错误:
./Bashispainful.sh: line 6: Syntax error near unexpected
算术的正确bash语法是$((…)).因此,该行可以写成:
Var5=$(($Var4*$Var3))
但是,因为bash并不痛苦,所以它理解算术表达式中的字符串是shell变量.因此,美元符号是不必要的,以上可以简化为:
Var5=$((Var4*Var3))
或者,由于上面只是对变量进行赋值,因此可以进一步简化为:
((Var5=Var4*Var3))
请注意,$((…))返回算术计算的值,但((…))不返回任何值.它设置了一个退出代码,使其对if语句中使用的测试很有用.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。