linux 002

发布于 2023-03-21 21:03:42 来源 : 哔哩哔哩

脚本编程


(相关资料图)

一、$

变量:$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

关键词: