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中的应用的更多相关文章

  1. shell脚本兼容linux/unix与windows/cygwin的基础(注意处理好CR, LF, CR/LF 回车 换行的问题)

    shell脚本兼容linux/unix与windows/cygwin的基础 :统一文本格式为:unix文本格式,即于LF为换行符(推荐方案) 在notepad上设置:编辑->档案格式转换-> ...

  2. Shell脚本查看linux系统性能瓶颈(转)

    Shell脚本查看linux系统性能瓶颈(转自:http://blog.51cto.com/lizhenliang/1687612) [root@test ~]# cat show_sys_info. ...

  3. 170509、文本编辑器编写的shell脚本在linux下无法执行的解决方法

    今天碰到一个奇怪的问题,编写好的shell脚本再linux上执行一直提示找不到文件或目录,后来想想是文本编辑器的问题,记录下来!!! 1.查看当前文本格式 Notepad++界面中,在右下角有文件格式 ...

  4. shell脚本计算Linux网卡流量

    本文介绍了计算linux网卡流量的一个shell脚本,一个通过固定间隔时间获取ifconfig eth0 的字节值而计算出网卡流量的方法,有需要的朋友参考下. 使用shell脚本计算Linux网卡流量 ...

  5. Shell脚本对Linux进行文件校验

    Shell脚本对Linux进行文件校验 一.需求 有客户等保需求对文件一致性进行校验,想到利用md5sum工具,因此写脚本来对文件进行自定义扫描,后期可以利用其进行校验,快速校验文件发现变更的文件,一 ...

  6. 使用Shell脚本对Linux系统和进程资源进行监控

    ShellLinux脚本 摘要:Shell语言对于接触Linux的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口.本文我们以Bash做为实例总结了使用Shell对系统和进 ...

  7. 使用 Shell 脚本自动化 Linux 系统维护任务

    如果一个系统管理员花费大量的时间解决问题以及做重复的工作,你就应该怀疑他这么做是否正确.一个高效的系统管理员应该制定一个计划使得其尽量花费少的时间去做重复的工作.因此尽管看起来他没有做很多的工作,但那 ...

  8. 使用 shell 脚本对 Linux 系统和进程资源进行监控

    Shell 简介 Shell 语言对于接触 LINUX 的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行.实际上 Shell 是 ...

  9. shell脚本监控Linux系统性能指标

    2016-11-04 22:41 原作者不详 分类: Linux(7) 在服务器运维过程中,经常需要对服务器的各种资源进行监控, 例如:CPU的负载监控,磁盘的使用率监控,进程数目监控等等,以在系统出 ...

随机推荐

  1. 如何从一台OPC Server访问多个PLC

    项目中遇到如下情况: 1. 整条生产线由多个PLC分别控制,但是所有PLC在同一个局域网内.PLC采用西门子的S7-200 Smart 2. 客户希望在操作工站的电脑(跟PLC在同一个局域网内)上提供 ...

  2. 从浏览器发送请求给SpringBoot后端时,是如何准确找到哪个接口的?(下篇)

    纸上得来终觉浅,绝知此事要躬行 注意: 本文 SpringBoot 版本为 2.5.2; JDK 版本 为 jdk 11. 前言: 前文:你了解SpringBoot启动时API相关信息是用什么数据结构 ...

  3. RocketMQ源码详解 | Producer篇 · 其一:Start,然后 Send 一条消息

    概述 DefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name"); ...

  4. csp-s 2021

    T1 廊桥分配 当一架飞机抵达机场时,可以停靠在航站楼旁的廊桥,也可以停靠在位于机场边缘的远机位. 乘客一般更期待停靠在廊桥,因为这样省去了坐摆渡车前往航站楼的周折. 然而,因为廊桥的数量有限,所以这 ...

  5. 关于麦克风的参数介绍 - 驻极体麦克风(ECM)和硅麦(MEMS)

    1.麦克风的分类1.1.动圈式麦克风(Dynamic Micphone)原理:基本构造包含线圈.振膜.永久磁铁三部分.当声波进入麦克风,振膜受到声波的压力而产生振动,与振膜在一起的线圈则开始在磁场中移 ...

  6. 常用Java API:大数类

    摘要 java中的基础数据类型能存储的最大的二进制数是 2 ^ 63 - 1, 对应的十进制数是9223372036854775807,也就是说只要运算过程中会超过这个数,就会造成数据溢出,从而造成错 ...

  7. Spring源码分析-BeanFactoryPostProcessor

    Spring源码分析-BeanFactoryPostProcessor 博主技术有限,本文难免有错误的地方,如果您发现了欢迎评论私信指出,谢谢 BeanFactoryPostProcessor接口是S ...

  8. k8s中部署springcloud

    安装和配置数据存储仓库MySQL 1.MySQL简介 2.MySQL特点 3.安装和配置MySQL 4.在MySQL数据库导入数据 5.对MySQL数据库进行授权 1.MySQL简介 MySQL 是一 ...

  9. PTA甲级1094 The Largest Generation (25分)

    PTA甲级1094 The Largest Generation (25分) A family hierarchy is usually presented by a pedigree tree wh ...

  10. Charles抓包 mock数据和rewrite功能

    一.mock数据 mock:在后端返回异常或需要=改前端展示的数据时可以模拟返回的response 1.1 抓到接口后 右击保存response到本地,后缀改成.json打开可以看到是把json保存下 ...