- 案例Shell概述
- Shell变量设置
- Shell脚本中的逻辑判断
- Shell脚本中的循环
Shell概述:
Shell是LinuX系统组成的重要部分之一,本质是一个用C语言编写的程序,他接受用户输入的命令把它送入内核去执行,是一个命令解释器。
Shell脚本解释器的分类: cat /etc/shells 来查看
- /bin/sh
- /bin/bash
- /sbin/nologin
- /bin/tcsh
- /bin/csh
1.创建新的Shell脚本:vi/vim 脚本名称 . sh(脚本后缀名是.sh)
- #! /bin/bash 指定脚本解释器
- #! filename:+脚本名字 脚本名字
- #! function:+功能 脚本功能
- #! writen by 作者 时间 脚本作者和时间
echo命令
-
- 语法格式:echo 【选项】【输出内容】
- 参数选项:-e 支持反斜线控制的字符转移
- 字符转移:
2.执行脚本:
-
- 方法一:直接输入脚本文件的绝对路径或者相对路径
- 方法二:bash + 脚本名称
3.修改脚本文件的权限: chmod +x(需要的权限) 脚本名称
4.Shell变量:
变量:是Shell传递数据的一种方式当Shell脚本需要保存一些信息时,入一个文件名或一个数字,就可以把它存储在一个变量中。
变量的分类:
- 局部变量:仅在当前Shell中有效,其他的Shell程序不能访问局部变量
- 环境变量:可以在当前Shell和这个所有子Shell当中生效
- 可以使用set命令来查看变量,使用unset命令删除变量
- 变量名称可以由字母,数字,下划线组成,但是不能以数字开头
- 环境变量名建议大写,便于区分
- 变量名用等号连接值,等号左右两侧不能有空格
5.变量的定义:
-
- 语法格式:变量名=值
6.变量的叠加:
-
- 第一种:是用双引号包裹$符号和变量名
- 第二种:是在$符后使用大括号将变量名包裹起来
7.Read命令:Shell脚本还可以和用户进行交互使用
-
- 语法格式:read -p 脚本语句
- 在进行计算结果的时候要用 [] 包裹起来,并在外面加上$符号
8.特殊符号的作用:
9.测试表达式:
- test -e /root/t1.sh
- [ -e /root/t1.sh ] 字符两边要加上空格否则报错
10.文件测试操作符
常用测试操作符 |
说明 |
-d |
文件存在,且为目录,则为真 |
-f |
文件存在,且为普通文件,则为真 |
-e |
文件(普通文件或目录),存在则为真 |
-w |
文件(普通文件或目录)存在,且可写,则为真 |
-r |
文件(普通文件或目录)存在,且可读,则为真 |
-x |
文件(普通文件或目录)存在,且可执行,则为真 |
-n |
字符串长度不为0,则为真 |
10-1案例:用两种测试表达式来分别测试下root目录下是否存在文件
11.单分支语句:
-
- if条件语句都是以if开头,并且有tnen 最后fi 结尾
- if条件语句都是以if开头,并且有tnen 最后fi 结尾
11-1案例:用单分支if语句来判断root目录下是否存在test目录如果存在就输出语句
11-2案例:用单分支进行判断root目录下是否存在/root/a/b/a/c如果没有输入确定
12.双分支if语句:
12-1案例:用双分支if判断root目录下的aaa.txt文件是否有执行权限有就重命名没有则添加权限
13.多重分支if语句:
12-1案例
13.case语句:
13-1案例
14.while循环
14-1案例