我做了一些我认为应该是名为 bashispainful.sh 的 shell 脚本的东西:
Code:
#!/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
Notes
考虑:
Var1= $((10*5))
bash 进行算术替换后,该命令如下所示:
Var1= 50
该命令表示(a)临时设置Var1
清空,并且 (b) 运行名为50
。由于没有名为50
,您收到错误:
Bashispainful.sh: line 2: 50: command not found
解决方案是删除空间,以便Var1
被分配给一个非空值:
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
声明。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)