平时我们都是介绍使用文本编辑器例如vim在Linux系统下写脚本,vim功能很强大,但是使用也比较复杂,其实有更好用的命令echo,不仅可以很方便的写脚本,而且可以进行边测试边修改,如果脚本没有问题,直接写入文件运行。 echo命令
Linux系统的bash shell脚本中没有print命令,而有一个echo命令。echo是回声的意思,在Linux系统中echo命令用于在终端设备上输出字符串或变量提取后的值,类似于print的功能。echo是在Linux系统中最常用的几个命令之一,但操作却非常简单。
(base) wangtong 10:24:29 ~ $ echo "hello,world" hello,world(base) wangtong 10:24:46 ~ $ echo $HOME /ifs1/User/wangtong(base) wangtong 10:24:50 ~
人们一般使用在变量前加上$符号的方式提取出变量的值,例如:$PATH,然后再用echo命令予以输出。或者直接使用echo命令输出一段字符串到屏幕上,起到给用户提示的作用。
如何使用echo写脚本
传统写脚本的步奏是首先用vim创建一个脚本文件,例如bwa.sh,然后将代码写入脚本文件中,然后保存退出,运行测试,如果提示错误,打开vim修改,在测试运行。如果没有问题, nohup sh bwa.sh & 运行脚本。需要反复在vim中进行调整。如果使用echo就很方便了。
1 命令行测试
(base) wangtong 10:28:32 ~/bwa$ bwa mem -t 4 -R '@RG\tID:A1\tPL:illumina\tSM:MTB' ref.fna /ifs1/Sequencing/H37Rv_clean.1.fq.gz /ifs1/Sequencing/H37Rv_clean.2.fq.gz [M::bwa_idx_load_from_disk] read 0 ALT contigs@SQ SN:gi|448814763|ref|NC_000962.3| LN:4411532 @RG ID:A1 PL:illumina SM:MTB@PG ID:bwa PN:bwa VN:0.7.17-r1188 CL:bwa mem -t 4 -R @RG\tID:A1\tPL:illumina\tSM:MTB ref.fna /ifs1/Sequencing/H37Rv_clean.1.fq.gz /ifs1/Sequencing/H37Rv_clean.2.fq.gz^C
2 如果脚本没有问题,使用echo重定向到文件中,注意需要使用引号。
(base) wangtong 10:28:43 ~/bwa$ echo "bwa mem -t 4 -R '@RG\tID:A1\tPL:illumina\tSM:MTB' ref.fna /ifs1/Sequencing/H37Rv_clean.1.fq.gz /ifs1/Sequencing/H37Rv_clean.2.fq.gz " >bwa.sh
3 cat*开代**文件查看代码
(base) wangtong 10:29:00 ~/bwa$ cat bwa.sh bwa mem -t 4 -R '@RG\tID:A1\tPL:illumina\tSM:MTB' ref.fna /ifs1/Sequencing/H37Rv_clean.1.fq.gz /ifs1/Sequencing/H37Rv_clean.2.fq.gz
4 后台运行任务
(base) wangtong 10:29:09 ~/bwa$ nohup sh bwa.sh &[1] 9576 (base) wangtong 10:29:15 ~/bwa$ nohup: ignoring input and appending output to ‘nohup.out’ (base) wangtong 10:29:17 ~/bwa$ jobs[1]+ Running nohup sh bwa.sh &(base) wangtong 10:29:19 ~/bwa$