19.10
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了19.10相关的知识,希望对你有一定的参考价值。
20.10 for循环shell脚本可以算是一种简易的编程语言了,脚本中的循环也是不能缺少的。常用到的循环有for循环和while循环。
for循环
语法:for 变量名 in 循环的条件; do
command
done
案例1
计算1到100所有数字的和。
1 编写脚本
先把1-100的数字循环打印出来
[[email protected] shell]# vim sh-for1.sh #!/bin/bash for i in `seq 1 100 ` do echo $i done [[email protected] shell]# sh sh-for1.sh 1 2 3 . . . . 98 99 100
有了数字之后,后续再做条件:加法运算(sum值)
继续编写脚本
#!/bin/bash
sum=0
for i in `seq 1 100`
do
sum=$[$sum+$i]
done
echo $sum
解释:
#!/bin/bash
sum=0 sum值等于0
for i in `seq 1 100` 1循环到100
do
sum=$[$sum+$i] 加法运算,sum的值等于变量$sum+变量$i(循环的数值),循环相加
done 结束for循环
echo $sum 输出总和结果
执行结果
[[email protected] shell]# sh sh-for1.sh
5050
执行过程
[[email protected] shell]# sh -x sh-for1.sh
+ sum=0 sum=0
++ seq 1 100 开始1-100循环
+ for i in '`seq 1 100 `' 第一次循环 i=1,根据条件sum=$[$sum+$i],所以sum=0+1=1
+ sum=1 输出sum=1
+ for i in '`seq 1 100 `' 第二次循环 i=2, 根据条件sum=$[$sum+$i],所以sum=1+2=3
+ sum=3 输出sum=3
+ for i in '`seq 1 100 `'
+ sum=6
+ for i in '`seq 1 100 `'
+ sum=10
.
.
.
+ for i in '`seq 1 100 `'
+ sum=4950
+ for i in '`seq 1 100 `' 第100次循环,i=100,根据条件sum=$[$sum+$i],所以sum=4950+100=5050
+ sum=5050 输出sum=5050
这样写可以更直观些
[[email protected] shell]# !vim vim sh-for1.sh #!/bin/bash sum=0 for i in `seq 1 100 ` do echo "$sum+$i" sum=$[$sum+$i] echo $sum done echo $sum [[email protected] shell]# sh sh-for1.sh 0+1 1 1+2 3 3+3 6 . . . 4753+98 4851 4851+99 4950 4950+100 5050 5050
for循环案例2
文件列表循环
编写脚本
#!/bin/bash cd /etc/ for a in `ls /etc/` do if [ -d $a ] then ls -d $a fi done
循环条件还可以引用系统的执行结果,例如ls命令
1 编写脚本
[[email protected] shell]# !vim vim sh-for-ls.sh #!/bin/bash cd /root/shell for f in `ls` do echo $f done
2 执行过程
[[email protected] shell]# sh -x sh-for-ls.sh + cd /root/shell ++ ls + for f in '`ls`' + echo 01.sh 01.sh + for f in '`ls`' + echo file-d.sh file-d.sh + for f in '`ls`' + echo file-f.sh file-f.sh + for f in '`ls`' + echo if1.sh if1.sh + for f in '`ls`' + echo if2.sh if2.sh + for f in '`ls`' + echo if3.sh if3.sh + for f in '`ls`' + echo sh-case-test.sh sh-case-test.sh + for f in '`ls`' + echo shell20-7.sh shell20-7.sh + for f in '`ls`' + echo sh-for1.sh sh-for1.sh + for f in '`ls`' + echo sh-for-ls.sh sh-for-ls.sh
3 执行结果
[[email protected] shell]# sh sh-for-ls.sh 01.sh file-d.sh file-f.sh if1.sh if2.sh if3.sh sh-case-test.sh shell20-7.sh sh-for1.sh sh-for-ls.sh
小知识点,其实他们的输出都一样,只是遍历的过程不同
[[email protected] shell]# for i in `seq 1 3`; do echo $i; done 1 2 3 [[email protected] shell]# seq 1 3 1 2 3 [[email protected] shell]# for i in 1 2 3 ; do echo $i ; done 1 2 3
以上是关于19.10的主要内容,如果未能解决你的问题,请参考以下文章
[Linux] 树莓派 4B 安装 Ubuntu 19.10 (Eoan Ermine) IOT 版