生信技能树学习笔记
常见格式
常见条件:数值判断、字符串判断、文件判断
if [ 1 -eq 1 ] ## 括号和数字之间要有空格
> then
> echo "Welcome"
> else
> echo "***"
> fi
if [ $? -eq 0 ] ## 判断上一个命令是否执行成功
> then
> touch ok.txt
> fi
if [ -z $1]
> then
> echo "usage: $0 <fq file> > <fa file>"
> exit $E_BADARGS
> fi
if [ ! -f ok.txt ]
> then
> touch ok.txt
>fi
for i in 1 2 3 4 5
> do
> echo "$i Hi!"
> sleep 3s
> done
for i in {1..10}
> do
> touch file${i} ## 变量建议加花括号
> done
list="CDS exon gene start_codon stop codon transcript UTR"
for i in ${list}
> do
> echo "This feature in ${i}"
> done
ls file*
for i in `ls file*` ## 反引号最优先执行
> do
> mv ${i} ${i}.txt
> done
ls file* | while read id
> do
> mv ${id} ${id}.txt
> done
ls file* > config
cat config | while read id
> do
> mv ${id} ${id%.txt} ## 减少一段后缀
> done
作用:掐头去尾
id=example.test.fq ## 定义变量
echo ${id#*.} ## 此时输出 test.fq (从头删直到最短的 . 为止)
echo ${id#*e} ## 此时输出 xample.test.fq (从头删直到最短的e为止)
echo ${id##*e} ## 此时输出 st.fq (从头删直到最长的e为止)
echo ${id%.*} ## 此时输出 example.txt (从后往前删直到最短的.为止)
echo ${id%%e*} ## 此时输出 (从后往前删直到最长的e为止)
echo ${id%.*}.fa ## 此时输出 example.test.fa (把example.fq变成example.fa)
id=Data.tar.gz
echo ${id/ta/xy} ## 输出Daxy.tar.gz
echo ${id//ta/xy} ## 输出Daxy.xyr.gz
id=Data.tar.gz
echo $id ## 输出Data.tar.gz
echo ${#id} ## 输出11 (变量前加 # 输出长度,从0开始一直到10)
echo ${id:3} ## 输出a.tar.gz
echo ${id:3:5} ## 输出a.tar
echo ${id:3:-1} ## 输出a.tar.g
## 用for循环生成SRR1234501.fastq到SRR1234510.fastq的10个空文件
for i in {1..10}
> do
> touch SRR12345${i}.fastq
> done
## 生成fq2fa.sh处理这些文件的命令
ls *fastq | while read id
> do
> echo "fq2fa.sh ${id} > {id%.*}.fasta"
> done
## 或者
ls *fastq | while read id
> do
> echo "fq2fa.sh ${id} > ${id/fastq/fasta}
> done
id=example
fastqc ~/Data/${id}.fq
## 用if判断$?的是否为0,如果是,输出yes,如果否,输出no
if [ $? -eq 0 ]
> then
> echo "yes"
> else
> echo "no"
> fi
## 生成10个文件,file1-10
for i in {1..10}
> do
> touch file${i}
> done
## 用 while read id 循环,在每个文件中写入一句话
ls file* | while read id
> do
> echo "Hi!" > ${id}
> done
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。