它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令或者自动地解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制结构,包括循环和分支。
Shell脚本是不需要编译的,和c以及python比较弱。Shell比较他们来说更加简单。就是把前面的基础命令精通,把这些语句、命令写入到文本文档中,就是Shell脚本。
1.脚本规范以.sh结尾
vi 1.sh
#!/bin/bash 脚本声明,用来告诉系统使用哪种Shell解析器来执行该脚本
2.运行脚本有两种格式:
bash 1.sh
./1.sh 在运行之前文件要有执行权限
chmod 777 1.sh
3.sh -x 1.sh 查询运行过程(其中+代表运行过程)
4.date 输出时间
cal 输出当月日历
cal -y 输出一年的日历
date +%y 显示年份的后两位 date +%Y 显示具体的年份
date +%T 显示时:分:秒 date +%F 显示年-月-日
date +%w 显示周数(今年的第几周,一年有52周)
5.红帽系统中自带计算器
bc
退出 ctrl+d
6.交互式Shell脚本
-p 是写入的参数 n、m是变量
read -t 3 -p "12345:" n
等待3秒,若不输入内容则自动退出
7.Shell内设了用于接收参数的变量,变量之间可以使用空格间隔,其中$0对应shell脚本程序的名称;$#对应的是总共有几个参数;$*对应的是所有位置的参数值,$n对应着第n个位置的参数值,$?对应上一次命令返回值
8.按测试对象分,条件测试语句可以分为4种:
文件测试语句 -d、-e、-f、-r、-w、-x
逻辑测试语句 &&(与) ||(或) !(非)
整数值比较语句 -eq -ne -gt -lt -ge -le
字符串比较语句 = != -z
9.文件测试即使用指定条件判断文件是否存在或权限是否满足等情况
-d 测试文件是否为目录类型
-e 测试文件是否存在
-f 判断是否为一般文件
-r 测试当前用户是否有权限读取
-w 测试当前用户是否有权限写入
-x 测试当前用户是否有权限执行
如果返回值为0,则目录存在;如果返回值非0,则目录不存在
10.逻辑测试语句
Shell终端中逻辑“与”的运算符号是&&,它表示当前面的命令执行成功后才会执行后面的命令
逻辑“或”的运算符号是||,表示当前面的命令执行失败后才会执行它后面的命令
逻辑“非”的运算符是!,表示把条件测试中的判断结果取相反值
可用的整数比较运算符
-eq 是否等于
-ne 是否不等于
-gt 是否大于
-lt 是否小于
-le 是否等于或小于
-ge 是否等于或大于