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中的应用的主要内容,如果未能解决你的问题,请参考以下文章

Linux bash基础特性二

代码片段:Shell脚本实现重复执行和多进程

Linux中编写一个shell脚本将指定目录中的文件的文件全名改为大写,但是命令执行完,shell

Python如何调用别人写好的脚本

LINUX对shell命令的拦截

Eclipse 中的通用代码片段或模板