最近在做项目的时候,发现在shell编程时,使用算术运算符和echo指令时有很多需要研究的,所以就写了这篇文章,一来可以对这两个知识点进行完整的总结,二来也可以给友友们在编程时能够提个醒。
算术运算符
在进行shell编程时,我们可以借助expr指令来完成整数的算术运算。可进行的算术运算有:加法(符号:+)、减法(符号:-)、乘法(符号:\*)、除法(符号:/)、求余(符号:%)及赋值(符号:=)。
下面一个例子说明算术运算符的使用及注意事项。我们编写如下图所示的一个shell程序
从图中可以看出,我们使用了所有算术运算符,但编写样式是不全相同的,具体它的运行结果是如何呢?我在终端中,运行上述shell文件,得到结果如下:
从结果中可以看出,加法、减法运算都正常运行了,但乘法、除法以及求余运算均显示运行异常。到底什么问题呢?
我们可以看到:上述代码对赋值运算符使用时,有所区别。加法、减法赋值运算符左右两侧均无空格,而乘法在赋值符左侧有空格,右侧无空格,除法和求余则赋值符左右都有空格,从运行结果可知,仅有加法、减法运行正常。因此,对shell编程可以总结如下:
- 赋值运算符前后不可有空格;
- 表达式和运算符之间必须有空格;
- expr指令后必须有空格;
- 算术表达式前后需要使用符号“`”。注意符号“`”非单引号,而是位于键盘ESC键下方的反引号。
发现上述问题,对shell文件修改后,运行结果如下:
可以看到,程序已可完全运行正常。
echo命令
从上面的例子,我们可以看到大量使用了echo命令,所以顺带总结一下echo命令用法。
- 语法
echo命令用于对字符串的输出,标准语法:
echo string
- 用法
显示普通字符串
可以看到双引号的有无对结果无影响。
显示转义字符
可以看到显示转义字符双引号的有无依然是对结果没有影响的。
换行显示
可以看到,显示换行必须加入 –e选项,否则原字符串输出。但最后一条语句取消了双引号,不知道怎么输出那个结果,有专业的友友可以帮忙解释一下,谢谢。
变量显示
将变量的值显示出来,可以参看算术运算符章节之例,不再赘述。
原样输出字符串,而不显示变量的值
使用用单引号即可,参看算术运算符章节之例,不再赘述。
输出到文件
将结果输出到指定的文件中,如下图所示:
可以看到执行命令后,结果直接输出到指定的文件中了。
显示命令执行结果
在命令中使用反引号,可以显示此命令执行结果,而不是显示命令本身。
本文中的问题,友友们可以多支持回复解答一下哦,谢谢。