#!/bin/bash
declare -r NUM1=5
NUM2 =4 # Line 4
num3=$((NUM1 + NUM2))
num4=$((NUM1 - NUM2))
num5=$((NUM1 * NUM2))
num6=$((NUM1 / NUM2)) # Line 9
echo "$num3"
echo $((5**2))
echo $((5%4))
我正在使用这个 bash 脚本,当我运行该脚本时,出现错误
./bash_help
./bash_help: line 4: NUM2: command not found
./bash_help: line 9: NUM1 / NUM2: division by 0 (error token is "NUM2")
5
25
1
所以我把代码改成这样,错误就消失了。
#!/bin/bash
declare -r NUM1=5
NUM2=4
num3=$((NUM1 + NUM2))
num4=$((NUM1 - NUM2))
num5=$((NUM1 * NUM2))
num6=$((NUM1 / NUM2))
echo "$num3"
echo $((5**2))
echo $((5%4))
为什么我们给变量赋值时不能使用空格?为了提高代码的可读性,使用空格是惯例。谁能解释一下吗?
这不是 bash(或者更一般地说,POSIX 系列 shell)中的约定。
至于“为什么”,那是因为各种错误的做法都有作为命令的有效含义。如果你做了NUM2 = 4
作业,那么你就无法通过=
作为字面参数而不引用它。因此,任何此类更改都将向后不兼容,而不是放置在未定义的空间中(POSIX sh 标准的扩展需要存在以避免构成对该标准的违反)。
NUM2= 4 # runs "4" as a command, with the environment variable NUM2 set to an empty string
NUM2 =4 # runs "NUM2" as a command, with "=4" as its argument
NUM2 = 4 # runs "NUM2" as a command, with "=" as its first argument, and "4" as another
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)