美文网首页
shell脚本

shell脚本

作者: 张老三168 | 来源:发表于2018-05-09 10:01 被阅读0次

什么是shell脚本

Shell 脚本(shell script),是一种为 shell 编写的脚本程序。业界所说的 shell 通常都是指 shell 脚本,shell 和 shell script 是两个不同的概念,Shell 是一个用 C 语言编写的应用程序,它是用户使用 Linux 的桥梁。
用shell编写的shell脚本,文件后缀名为.sh

执行shell脚本的两种方式

  • 作为可执行程序
#!/bin/bash
number=10;
echo $number;
image.png
  • 作为解释器参数


    image.png

Shell 变量

  • 定义变量
    定义变量时,变量名不加美元符号,变量名和等号之间不能有空格,其他命名规则与其他脚本语言类似
  • 使用变量
    使用一个定义过的变量,只要在变量名前面加美元符号即可
    -只读变量
    使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变,相当于是常量不允许修改
  • 删除变量
    使用 unset 命令可以删除变量 语法:unset variable_name
  • 变量类型
  1. 局部变量 局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
  2. 环境变量 所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
  3. shell变量 shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行
  • Shell 字符串
  1. 单引号
    单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的 引号字串中不能出现单引号(对单引号使用转义符后也不行)
  2. 双引号
    双引号里可以有变量 双引号里可以出现转义字符
  3. 拼接字符串
image.png
  • Shell 数组
    bash支持一维数组(不支持多维数组),并且没有限定数组的大小。
    类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0
  1. 定义数组
    在Shell中,用括号来表示数组,数组元素用"空格"符号分割开。定义数组的一般形式为 数组名=(值1 值2 ... 值n)
  2. 读取数组 读取数组元素值的一般格式是:${数组名[下标]}
  3. 获取数组的长度 获取数组长度的方法与获取字符串长度的方法相同


    image.png
  • Shell 注释
    以"#"开头的行就是注释,会被解释器忽略 备注:sh里面没有多行注释

Shell 基本运算符

Shell 和其他编程语言一样,支持多种运算符,包括: 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用

  • 算术运算符
运算符 说明
+ 减法
- 减法
* 乘法
/ 除法
% 取余
= 赋值
== 相等。用于比较两个数字,相同则返回 true
!= 不相等。用于比较两个数字,不相同则返回 true
image.png
  • 关系运算符
运算符 说明
-eq 检测两个数是否相等,相等返回 true
-ne 检测两个数是否不相等,不相等返回 true
-gt 检测左边的数是否大于右边的,如果是,则返回 true
-lt 检测左边的数是否小于右边的,如果是,则返回 true
-ge 检测左边的数是否大于等于右边的,如果是,则返回 true
-le 检测左边的数是否小于等于右边的,如果是,则返回 true
image.png
  • 逻辑运算符
运算符 说明
&& 逻辑的 AND
| | 逻辑的 OR
image.png
  • 字符串运算符
运算符 说明
= 检测两个字符串是否相等,相等返回 true
!= 检测两个字符串是否相等,不相等返回 true
-z 检测字符串长度是否为0,为0返回 true
-n 检测字符串长度是否为0,不为0返回 true
str 检测字符串是否为空,不为空返回 true

ehco和printf命令

image.png

Shell test 命令

Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试

Shell 流程控制

  • if条件判断


    image.png
  • for循环


    image.png
    image.png
  • while循环


    image.png
  • until循环


    image.png
  • break跳出整个循环


    image.png
  • continue跳出当前循环继续下一次循环


    image.png

Shell 函数

linux shell 可以用户定义函数,然后在shell脚本中可以随便调用
1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。
2、参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255)


image.png

Shell 输入/输出重定向

  • /dev/null 文件
    如果希望执行某个命令,但又不希望在屏幕上显示输出结果,那么可以将输出重定向到 /dev/null

相关文章

  • Shell入门笔记

    Shell脚本:Linux Shell脚本学习指南菜鸟教程 - Shell教程Linux入门 - Shell脚本是...

  • 2018-09-26

    shell脚本 1.1、什么是shell脚本(shell script , ...

  • Shell script + crontab实现Mysql定时备

    一、Shell 脚本 Shell 脚本(shell script),是一种为 shell 编写的脚本程序。 业界所...

  • 嵌入式day12

    shell脚本的本质 shell脚本语言是解释型语言 shell脚本的本质:shell命令的有序集合 shell编...

  • shell脚本

    什么是shell脚本 Shell 脚本(shell script),是一种为 shell 编写的脚本程序。业界所说...

  • Shell脚本语法

    1. Shell脚本简介Shell 脚本(shell script),是一种为 shell 编写的脚本程序。业界所...

  • shell脚本

    什么是Shell脚本 Shell脚本(英语:Shell script),又称Shell命令稿、程序化脚本,是一种电...

  • 【生物信息笔记】shell 脚本 (dry-2)

    shell 和 shell script(脚本)区别: shell 和 shell 脚本是两个不同概念,shell...

  • chapter 11. 构建基本脚本

    创建shell脚本 shell脚本第一行为指定具体shell来运行该脚本,可以指定shell(待验证) echo ...

  • PySparkSQL脚本模板

    PySpark模板分为shell脚本和python脚本两部分,通过shell脚本提交spark任务。 shell脚...

网友评论

      本文标题:shell脚本

      本文链接:https://www.haomeiwen.com/subject/ihqnrftx.html