#!/bin/bash
x=10
echo x=$x
z=20
echo z=$z
y= expr $x + $z
echo y=$y
我希望輸出這樣的:算術表達式的Bash腳本
x=10
z=20
y=30
,但它給錯誤,如:
x=10
z=20
30
y=
#!/bin/bash
x=10
echo x=$x
z=20
echo z=$z
y= expr $x + $z
echo y=$y
我希望輸出這樣的:算術表達式的Bash腳本
x=10
z=20
y=30
,但它給錯誤,如:
x=10
z=20
30
y=
做NOT
使用過時的結構expr
,用算術運算符$(())
POSIX
兼容算術bash
y=$((x + z))
echo "y=$y"
ohh ...謝謝..現在的工作 –
'$((...))'不僅僅是標準的,而是它在當前進程中執行算術,而不是開始一個新的進程來運行'expr'。 – chepner
此外,如果您先將x,y和z聲明爲整數,則可以用'((y = x + z))'或簡單地'y = x + z'替換'y = $((x + z))'與'聲明-ixyz' –
'Y = $(表達式$ X + $ Z)',而不是'Y = EXPR $ X + $ z' –
'Y = \'$ expr的X + $ Z^\''也工作,尋找對於「bash中的命令替換」,是更好的Inian的解決方法 –