- 重定向符号 >
脚本:把一堆命令打包在一起执行
2.变量
在内容中开一个空间,把一个数字或文字暂时保存在空间中
shell 中输出: echo, 输出或引用变量时要增加$符号
如:
a=10 ## 注意:赋值无空格
echo $10
运算:+ - /* / (*号要有转议符 )
a=10
b=3
c=`expr $a + $b` ## 公式中运算符两侧要有空格
echo $c
-
if语句
Screen Shot 2021-11-01 at 4.17.31 PM.png
-gt greater than
< -lt less than
= -ge greater equal
<= -le less equal
= -eq
a=10
b=35
if [ $a -gt $b ]
then
echo $a
else
echo $b
fi
4.for循环
for x in 1 2 3
do
echo $x
done
- while 循环
x=1
while [ $x -le 10 ]
do
echo $x
x=`expr $x + 1`
done
小应用 1. 批量修改文件名称
fastq文件如下(paired)
1.txt SRR3182423_2.fastq.gz SRR3182434_2.fastq.gz SRR3182444_2.fastq.gz
id_name.txt SRR3182433_1.fastq.gz SRR3182435_1.fastq.gz
mv.sh SRR3182433_2.fastq.gz SRR3182435_2.fastq.gz
SRR3182423_1.fastq.gz SRR3182434_1.fastq.gz SRR3182444_1.fastq.gz
根据id_name.txt 中id和case的对照关系,修改fastq文件名
cat id_name.txt
SRR3182423 case1_germline
SRR3182433 case1_biorep_A_techrep_1
SRR3182434 case1_biorep_B
SRR3182435 case1_biorep_C
SRR3182444 case1_techrep_2
实现如下:
cat id_name.txt | while read id
do
arr=(${id}) # array 默认打印第一个元素
sample=${arr[0]}
case=${arr[1]}
#echo $arr
#echo $sample
#echo $case
mv ./${sample}_1.fastq.gz ./${case}_1.fastq.gz
mv ./${sample}_2.fastq.gz ./${case}_2.fastq.gz
done
tips:
1.echo array时,默认只输出array的第一个元素,即array[0].
- 害怕出错时,把中间的变量都打印出来,及时检查
网友评论