Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个shell程序如下:
#!/bin/sh a=1 b=2 c=`expr $a+$b` echo $c
输出是1+2。
1+2
但如果我改变
c=`expr $a+$b\`
至
c=`expr $a + $b`
输出将是 3。
我想知道这里的空间有什么用。
expr是一个 shell 命令,需要两种类型的参数:操作数(“数字”)和运算符(+、-、* 等)。在您的情况下,您希望将三个参数传递给expr,它们是 $a、+ 和 $b。美元符号值由您的 shell 扩展为它们的实际值 1 和 2,而不是由expr. 所以,当你这样做时expr $a + $b,实际的 shell 命令是expr 1 + 2,它给你 3。
expr
expr $a + $b
expr 1 + 2
当您不输入空格时,执行的是expr 1+2. 该expr程序不知道如何处理1+2它的唯一参数,因此只是原封不动地回响它。
expr 1+2