题目:编写shell脚本,计算1-100的和
分析:拿到脚本题目之后没有思路,只想到了用for循环提取变量i1到100的值,调用sum时没有给sum附初始值,echo输出最后的值时候,放到do里边每次执行都会输出一次,放到do外边,只会输出最终得到的结果。
错误脚本:
#!/bin/bash
for ((i=1; i++; i<=100))
do
sum=$sum+$i
echo $sum
done
正确脚本:
#!/bin/bash
sum=0
for i in `seq 1 100`
do
sum=$[$i+$sum]
done
echo $sum
执行结果:
[root@localhost shell]# bash sum.sh
5050
知识点:seq用于生成从一个数到另一个数之间的所有整数
用法:seq [选项]... 尾数
或:seq [选项]... 首数 尾数
或:seq [选项]... 首数 增量 尾数
选项:
-f, --format=FORMAT use printf style floating-point FORMAT
-s, --separator=STRING use STRING to separate numbers (default: \n)
-w, --equal-width equalize width by padding with leading zeroes
-f 指定输出格式
#seq -f “%3g” 13 数字位数为三位,不足补空格
1
2
3
#seq -f “%03g” 1 5 数字位数为三位,不足补零
001
002
003
004
005
#seq -f "str%03g" 1 3
str001
str002
str003
-w 指定输出数字同宽,与-f部分作用相似,不可与-f选项同时使用
#seq -w 8 12
08
09
10
11
12
-s 指定分隔符,默认分隔符是/n(回车)
#seq -s " " 1 5 空格作为分隔符
1 2 3 4 5
#seq -s "`echo -e "\t"`" 1 3 \t作为分隔符
1 2 3
seq用法原文链接:
原文链接:https://blog.csdn.net/paoxiaohui/article/details/52830595