1.开头:#!/bin/sh或#!/bin/bash
一 定义变量
1.全局变量 局部变量
在脚本或者直接在目录下调用的定义的变量是局部变量
2.查看 变量 用echo 调用变量要用 $
3.只读变量 readonly 删除变量 unset
4.查看所有环境变量 env
5."" 和 ‘’ 的变量的区别在于 “” : 内可以识别变量 和转义字符
二 变量的使用
1.获取字符串的长度
str=“abcd”
echo ${#str}
2.输出字符串或者提取
echo $name
echo ${name:1:3}
1 代表从第一个开始截取 3 代表截取个数
3.数组
定义数组 name=(1111 2222 333)
读取数组
echo ${name[0]} 读取下标为0的
echo ${name[@]} 读取所有
echo ${#name[@]} 获取数组的长度
三 运算符的使用
1.+ - * / % = == !=
expr 10 + 20
echo $((10+20))
let n++
2.[] 和 [[]] 的区别 可以虚拟匹配
if [[ $a =~ "x" ]]; then
echo "包含"
else
echo "不包含"
fi
2.关系运算符
man test 里面会有解释
-eq 是否相等
-ne 是否不相等
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
3. 布尔运算符
-o or || 两者满足一种即可
-a and && 两者都要满足
四 传参
echo ‘$1 is :‘$1 # 输出$1 is: 可以直观的看到$1的值
echo ‘$# is:‘$# # 输出有多少个参数
echo ‘$@ is:‘$@ # 输出所有参数
echo ‘$* is:‘$* # 输出所有参数
echo ‘$$ is:‘$$ # 输出did
echo ‘$? is:‘$? # 查看上一条语句有没有成功
$$ | Shell本身的PID(ProcessID) |
$! | Shell最后运行的后台Process的PID |
$? | 最后运行的命令的结束代码(返回值) |
$- | 使用Set命令设定的Flag一览 |
$* | 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 |
$@ | 所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 |
$# | 添加到Shell的参数个数 |
$0 | Shell本身的文件名 |
$1~$n | 添加到Shell的各参数值。$1是第1参数、$2是第2参数… |
五 字符串运算符
= :检测两个字符串是否相等
!= :检测两个字符串不相等
-z : 是否为空
-n : 字符串长度是否为 0
文件测试运算符
-b 检测文件是否为块设备
-d 是否为目录
-f 是否为文件
-r -w -x 是否可读 可写 可执行
-e 开启转义
\n 换行
%s 将参数按字面意思解释为字符串
%f 浮点
%d 整形
六 read从键盘读入内容
用法:
read -p "提示信息" 变量名
例子:
read -p "请输入你的用户名: " username