product=$(expr $i * $j) 这样写为啥有错误
时间: 2023-07-15 08:15:42 浏览: 57
这个表达式是用来计算两个变量 `$i` 和 `$j` 的乘积,但是写法有误。应该使用`$((expression))`的语法来进行数学表达式的计算,正确的写法是:
```
product=$((i * j))
```
或者使用 `expr` 命令计算乘积,正确的写法是:
```
product=`expr $i \* $j`
```
其中,`\*` 是用来转义乘号 `*` 的,避免被 shell 解析为通配符。
相关问题
((product=$i*$j))可以用expr写法嘛?怎么写
是的,可以用`expr`命令来进行算术运算。
`expr $i \* $j` 可以计算出$i$和$j$的乘积,并将结果存储在变量`product`中,即:
```
product=`expr $i \* $j`
```
注意,在`expr`命令中,`*`是一个特殊字符,需要使用反斜杠`\`进行转义。
#!/bin/bash a=1 b=2 # 声明变量a=11和b=22 echo "a=${a} b=${b}" echo "a + b = `expr $a + $b`" echo "a * b = `expr $a \* $b`" echo "a - b = `expr $a - $b`" echo "a * b = `expr $a \* $b`" echo "b / a = `expr $b / $a`" echo "b % a = `expr $b % $a`
这段代码是一个简单的shell脚本,它声明并使用了变量 `a` 和 `b` 进行数学运算,并将结果打印输出。下面是代码的解释:
```bash
#!/bin/bash
a=1 b=2 # 声明变量a=1和b=2
echo "a=${a} b=${b}"
echo "a + b = `expr $a + $b`"
echo "a * b = `expr $a \* $b`"
echo "a - b = `expr $a - $b`"
echo "a * b = `expr $a \* $b`"
echo "b / a = `expr $b / $a`"
echo "b % a = `expr $b % $a`"
```
在这段代码中,首先使用 `#!/bin/bash` 指定了脚本使用的shell解释器为bash。
然后,通过 `a=1 b=2` 的方式声明了两个变量 `a` 和 `b`,并分别赋值为1和2。
接下来,使用 `echo` 命令将变量 `a` 和 `b` 的值打印输出。
随后,使用 `expr` 命令进行数学运算,并将结果嵌入到字符串中进行输出。例如,`expr $a + $b` 是将变量 `a` 和 `b` 的值相加,其他运算类似。
最后,执行脚本时将会输出如下结果:
```
a=1 b=2
a + b = 3
a * b = 2
a - b = -1
a * b = 2
b / a = 2
b % a = 0
```
这段代码演示了在shell脚本中使用变量和进行数学运算的方法。通过使用 `expr` 命令,可以进行加法、减法、乘法、除法和取模等运算,并将结果嵌入到输出字符串中。