shell 脚本在linux中的应用
Posted 斩毛毛
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell 脚本在linux中的应用相关的知识,希望对你有一定的参考价值。
shell脚本在linux中应用广泛,之前一直选用python写脚本来进行一些文件操作,但是最后发现shell脚本非常方便,所以特意来学习下皮毛,便于提高自己效率
-
定义变量
-
1 country="China" 2 Number=100 3 4 ##注意 5 ##变量名和等号之间不能有空格 6 7 ##若有调用变量,则加$即可,可perl一样 8 9 ## 输出 country, 用echo即可 10 echo $country
-
字符串
-
1 ## 单引号 2 # 单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的; 3 # 单引号字串中不能出现单引号(对单引号使用转义符后也不行)。 4 5 ## 双引号 6 # 双引号里可以有变量 7 country="China" 8 echo "hello, $country" 9 # 双引号里可以出现转义字符 10 11 ## 提取字符串长度,#号即可 12 string="abcd" 13 echo ${#string} #输出 4 14 15 ## 提取子字符串; string 16 string="alibaba is a great company" 17 echo ${string:1:4} #输出liba 18 19 ## 查找子字符串; index 20 string="alibaba is a great company" 21 echo `expr index "$string" is`
-
处理路径的字符串
-
1 ## 获取文件名; basename 2 basename /home/xiaoming/1.txt 3 结果 1.txt 4 5 ## 获取多个路径,参数-a 6 basename -a /home/xiaoming/1.txt /home/ye/2.txt 7 结果:1.txt 8 2.txt 9 10 ## 去掉文件名的后缀,参数 -s 11 basename -s .txt /home/xiaoming/1.txt 12 结果:1 13 14 ## 获取路径 dirname 15 dirname /home/xiaoming/1.txt 16 结果:/home/xiaoming
-
if语句
-
1 a=10 2 b=20 3 if [ $a == $b ] 4 then 5 echo "a is equal to b" 6 else 7 echo "a is not equal to b" 8 fi 9 10 ## 也可以一行表示,一行则需要添加分号 ; 11 if test $[2*3] -eq $[1+5]; then echo \'The two numbers are equal!\'; fi;
-
for循环
-
1 ## 显示主目录下以 .bash 开头的文件 2 #!/bin/bash 3 for FILE in $HOME/.bash* 4 do 5 echo $FILE 6 done 7 8 9 ## 读取文件含有fq的文件,并对其进行压缩; linux中用grep等 10 for file in $(ls |grep fq) 11 do 12 bgzip -f $file 13 done 14 15 ## 读取reads,进行hisat2比对 16 for ((i=56;i<=58;i++));do hisat2 -t -x genome -1 SRR35899${i}.sra_1.fastq.gz -2 SRR35899${i}.sra_2.fastq.gz -S SRR35899${i}.sam ;done
持续学习!!
参考
linux下的shell脚本(基本)
以上是关于shell 脚本在linux中的应用的主要内容,如果未能解决你的问题,请参考以下文章