算术表达式的Bash脚本

0 bash

#!/bin/bash
x=10
echo x=$x
z=20
echo z=$z
y= expr $x + $z
echo y=$y
Run Code Online (Sandbox Code Playgroud)

我想输出像:

x=10
z=20
y=30
Run Code Online (Sandbox Code Playgroud)

但它给出了如下错误:

x=10
z=20
30
y=
Run Code Online (Sandbox Code Playgroud)

Ini*_*ian 5

不要NOT使用过期的结构expr,用算术运算符$(())POSIX顺应算术bash

y=$((x + z))
echo "y=$y"
Run Code Online (Sandbox Code Playgroud)

  • `$((...))`不仅仅是标准的,而且它在当前进程中执行算术,而不是启动一个新进程来运行`expr`. (2认同)