shell编程
首先介绍一下shell和shell脚本,这里引用百度百科上面的解释:
shell和shell脚本有什么区别?确切一点说,Shell就是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。 Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言(就是你所说的shell脚本)。作为命令语言,它互动式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。它虽然不是 Linux系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。
1 shell脚本的编写执行
- test.sh(第一个shell脚本,在控制台打印输出:Hello World!)
#!/bin/bash
echo "Hello World !"
- 解释:
#!是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。
echo 命令用于向窗口输出文本。 - 执行shell脚本
方式1:先设置该脚本可执行的权限,然后执行一般程序的方式运行
方式2:bash shellname.sh(不需要设置可执行权限)
2 变量
- 变量的定义与赋值
定义变量时,不需要指定变量的数据类型,可直接赋值,但变量名要符合命名规范:字母、数字、下划线组成,且不能以数字开头,不能是关键字。 - 引用变量
定义过的变量使用时,可以直接在前面加上$进行引用,引用变量时可以加{}号,也可以不加,主要是用于解释器识别边界。防止与其它字符连接在一起。推荐的是在引用变量时都添加{}。
注:多变量的使用
- 设置只读变量
readonly可以将定义过的变量设置为只读,不可以再改变变量的值。
- 删除变量
unset删除非只读变量,删除后的变量不可以再引用
- 变量类型
3 字符串
- 字符串变量
字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),字符串可以用单引号,也可以用双引号,也可以不用引号。
- 拼接字符串
- 取字符串长度
- 提取子串
- 查找子串
- 截取字符串