运维面试常见题:计算1+2+3+。。。+100的和
1、echo {1..100}|tr ' ' '+'|bc #先用最简单的echo,将从1-100显示到终端上,再利用tr将空格转换成加号,然后丢给计算器bc计算;
2、seq -s '+' 100|bc #利用seq中-s选项设置显示的分隔符,然后传给bc计算;
3、sum=0;for i in `seq 100`;do let sum+=i;done;echo $sum #利用命令行的循环及变量,使用let计算表达式值,最后输出sum的值;
4、sum=0;for i in `seq 100`;do sum=$[sum+i];done;echo $sum #与3类似,只是运算式使用的"$[]"进行计算;
5、sum=0;for ((i=0;i<=100;i++));do let sum+=i;done;echo $sum #使用for的高级用法;
6、sum=0;i=0;while [ $i -le 100 ] ;do let sum+=i i++;done;echo $sum #使用while循环,用“[]”进行判断i值,再i++,算出sum值输出;
7、awk 'BEGIN{i=0;sum=0;while(i<=100){sum+=i;i++} print sum}' #使用文本处理三剑客之一awk语法,BEGIN{action}和while循环语句以及print命令;
8、awk 'BEGIN{sum=0;for(i=0;i<=100;i++){sum+=i} print sum}' #使用awk中的for循环语句;
9、awk 'BEGIN{sum=0;i=0;do{sum+=i;i++}while(i<=100);print sum}' #awk中do{}while()语句;
注意:以上的表达式中i=0也可以换成i=1,都不影响结果是5050;