linux 002
脚本编程
(相关资料图)
一、$
变量:$0为文件名,$1-9为变量,$10以上要加{},如${10},否则第二位会被默认作为$1后的连结
二、循环
ls GSE129785_scATAC-{P,T}* | while read id;do echo $id;done
for id in GSE129785_scATAC-{P,T}*;do echo $id;done
三、反引号
单引号和双引号会剥夺命令是之变成字符串,
但`` 会先执行反引号中的命令
for id in `cat config`;do echo $id;done
ls ~/scRNA/atac/*.gz | while read id;do ln -s $id `basename $id`;done
注意:反引号和$()是一样的,称为命令替换。${}被称为变量替换,见002-六、
详见:https://www.cnblogs.com/chengd/p/7803664.html
四、重定向
1、输出重定向
bash tmp2.sh 1 > result.txt #1前面可以有空格
2、错误输出重定向
bash tmp2.sh 2> result.txt #2前面不能有空格
详见:https://blog.csdn.net/spaceship20008/article/details/8475267
五、basename
六、%%.*
一个百分号就是去掉最后一个.及右,两个就是去掉第一个.及右
1、text=GSE129785_scATAC-Hematopoiesis-CD34.peaks.txt.gz;echo ${text%.*}
GSE129785_scATAC-Hematopoiesis-CD34.peaks.txt
2、text=GSE129785_scATAC-Hematopoiesis-CD34.peaks.txt.gz;echo ${text%%.*}
GSE129785_scATAC-Hematopoiesis-CD34
关键词: