美文网首页Linux小推车
linux Day19:循环for while

linux Day19:循环for while

作者: 泥人吴 | 来源:发表于2018-11-04 00:06 被阅读7次

参数


$ bash cap.sh
cap.sh
$ bash cap.sh p1
cap.sh
$ vi cap.sh
$ bash cap.sh p1
cap.sh p1
$ bash cap.sh p1 p2
cap.sh p1
$ vi cap.sh
$ bash cap.sh p1 p2
cap.sh p1 p2
$ cat cap.sh
echo $0 $1 $2
# 比较下面两者的不同
$ vi cap.sh
$ bash cap.sh p1 p2 p3 4 5 6 7 8 9 0 3 4
p12
$ cat cap.sh
echo $12
# “$12”输出的是“$1”的内容加上字符串“2”,所以就成了“P12”,正确的写法应该是“{$12}”。

$ vi cap.sh 
$ bash cap.sh p1 p2 p3 P4 5 6 7 8 9 0 3 4
4
$ cat cap.sh 
echo ${12}

通配符

通配符.PNG

循环:

  • 进入条件,退出条件
  • 表达式:
for 变量 in 列表;do
    循环体
done
#或者:
for 变量 in 列表
do
     循环体
done
  • 如何生成列表:
  • {1..100}
  • seq [起始数 [步进长度]] 结束数
  • 练习:写一个脚本计算1..100之间数的合
  • 第一种方法:使用for
$ nano cap.sh
$ bash cap.sh
The sum is :5050.
$ cat cap.sh
#! /bin/bash
#
declare i SUM=0
for I in {1..100}; do
  let SUM=$[$SUM+$I]  # 试试不加let
done

echo "The sum is :$SUM."
  • 第二种方法:使用while循环
$ vi sh1.sh
$ bash sh1.sh 
The SUM is :5050.
$ cat sh1.sh 
#!/bin/bash
s=o # 这是累加的变量
i=0 # 这是累计的数值,1,2,3...
while [ "$i" != "100" ]
do 
  i=$(($i+1)) #每次i都会加1
  s=$(($s+$i))  #s每次都会加一次i
done
echo  "The SUM is :$s."

while循环

  • 适用于循环次数未知的场景,要有推出条件。
  • 语法
while CONDITION ;do
  statemet
  ...
done
  • 计算{1..100}的和
ubuntu@VM-0-3-ubuntu:~$ ./sh08.sh 
SUM is 5050
ubuntu@VM-0-3-ubuntu:~$ cat sh08.sh

#!/bin/bahs
#
declare -i I=1
declare i SUM=o

while [ $I -le 100 ]; do
  let SUM+=$I
  let I++
done
echo "SUM is $SUM"

生信技能树公益视频合辑:学习顺序是linux,r,软件安装,geo,小技巧,ngs组学!
请猛戳下面链接
B站链接:https://m.bilibili.com/space/338686099

YouTube链接:https://m.youtube.com/channel/UC67sImqK7V8tSWHMG8azIVA/playlists

生信工程师入门最佳指南:https://mp.weixin.qq.com/s/vaX4ttaLIa19MefD86WfUA

学徒培养:https://mp.weixin.qq.com/s/3jw3_PgZXYd7FomxEMxFmw

相关文章

网友评论

    本文标题:linux Day19:循环for while

    本文链接:https://www.haomeiwen.com/subject/pechxqtx.html