我有一个shell程序如下:
#!/bin/sh
a=1
b=2
c=`expr $a+$b`
echo $c
输出为1+2
。
但如果我改变
c=`expr $a+$b\`
到
c=`expr $a + $b`
输出将为3。
我想知道这里有多少空间用途。
答案 0 :(得分:2)
expr
是一个shell命令,期望两种类型的参数:操作数(“数字”)和运算符(+, - ,*等)。在您的情况下,您希望将三个参数传递给expr
,即$ a,+和$ b。美元符号值由shell扩展为实际值1和2,而不是expr
。所以,当你执行expr $a + $b
时,实际的shell命令是expr 1 + 2
,它给你3个。
如果不放入空格,执行的内容为expr 1+2
。 expr
程序不知道如何处理1+2
作为其唯一参数,因此只是将其回复原点。