参数
$ 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}
通配符
循环:
- 进入条件,退出条件
- 表达式:
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
网友评论