Linux-Shell编程之求命令行中所有整数之和

前言

  复习shell编程知识,书中有此练习题,之前学习时便没有搞透彻,此次是非啃下不可。

  但是,摸索许久,却屡碰南墙,于是查阅网络博客,结果有让人比学不懂知识更让生气的是:博文遍地,净是抄袭!连个截图都没有变,15年的博文,19年的新博文中连截图和文字都没有变,同一篇博文被三个人抄袭,而且博文中的代码根本无法运行出正确的结果!悲夫,这便是国内知识产权上的抄袭之风甚矣,赤裸裸的盗贼!抄袭的人,与我们还是同行,我完全不能与这类人共事。

  故如续转载,请注明出处:https://www.cnblogs.com/johnnyzen/p/10527795.html,侵权必究,蟹蟹理解。

题目

  设计一个Shell脚本:求命令行上所有整数和。

源码

#!/bin/bashecho [$0]; #$0始终为文件名

echo [$0]; #$0始终为文件名

sum=0; #赋值等号左右不能含空格符
for i in $*
do
 # echo $i; #输出变量值
 sum=`expr $sum + $i`;
done

echo sum:$sum;

exit 0;

关键点

1.赋值等号的左右不能含空格符;

2.for/while循环从$*或者$@中依次取值

3.expr命令符

4.的区别

  二者都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。
但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数。

原文:https://blog.csdn.net/u011341352/article/details/53215180
版权声明:本文为博主原创文章,转载请附上博文链接!

推荐文献

[1] Shell特殊变量:Shell $0, $#, $*, $@, $?, $$和命令行参数

[2] shell编程控制结构:expr、let、for、while、until、shift、if、case、break、continue、函数、select

猜你喜欢

转载自www.cnblogs.com/johnnyzen/p/10527795.html