我不明白为什么下面的第一个命令有效,当我使用 expr 命令时,它需要 * 进行转义。在我看来,* 应该始终被转义,因为它是 BRE 的一部分,因此应该被转义,以免代表“任何”。所以我不明白为什么第一个命令实际上有效。
$ a=2; b=3; echo $((a*b))
6
$ var1=$(expr 2 * 3) ; echo $var1
expr: syntax error: unexpected argument ‘Desktop’
$ var1=$(expr 2 \* 3) ; echo $var1
6